ListView 控制 VB.net
Public Class ListViewOperation
Shared bRowsNum As Boolean = False
'初期化ListView
‘lstCTL :ListView控件变量
’columns() :一维字符串数组,ListView的列标题
Public Shared Sub list_init(ByRef lstCTL As System.Windows.Forms.ListView, ByVal columns() As String, Optional ByVal RowNum As Boolean = False)
If lstCTL Is Nothing Then
Exit Sub
End If
Dim lstComm As System.Windows.Forms.ListView = lstCTL
'clear old data
lstComm.Items.Clear()
lstComm.Columns.Clear()
lstComm.View = View.Details
lstComm.MultiSelect = True
lstComm.FullRowSelect = True
lstComm.HideSelection = False
Dim strColumn As String
'add RowNum
bRowsNum = RowNum
If bRowsNum Then
lstComm.Columns.Add(" ", 30)
End If
If columns Is Nothing Then
lstComm.View = View.List
lstComm.MultiSelect = False
Exit Sub
End If
'set column name
For Each strColumn In columns
If strColumn IsNot Nothing Then
If strColumn.Trim.Equals("") Then
Continue For
End If
lstComm.Columns.Add(strColumn, strColumn.Length * 6 + 50)
End If
If strColumn Is Nothing Then
Exit For
End If
Next
'set gridline type
lstComm.GridLines = True
End Sub
''' <summary>
''' 从ListView最后一行开始添加数据行
''' </summary>
''' <param name="lstCTL">ListView控件变量</param>
''' <param name="strItems">二维数组 第二维是行,第一维是一行的所有列</param>
''' <remarks></remarks>
Public Shared Sub list_addData(ByRef lstCTL As System.Windows.Forms.ListView, ByVal strItems()() As String)
If strItems Is Nothing Then
Exit Sub
End If
If lstCTL Is Nothing Then
Exit Sub
End If
Dim lstComm As System.Windows.Forms.ListView = lstCTL
Dim RowCounter As Integer
Dim ColCounter As Integer
Dim RowCurOrder As Integer = lstComm.Items.Count
Dim ColStartOrder As Integer
Dim bRowVaild As Boolean = False
Dim strColValue As String
Dim strInvaildRowCount As Integer = 0
' add row
For RowCounter = 0 To UBound(strItems)
If strItems(RowCounter) IsNot Nothing Then
bRowVaild = False
Dim listItem As System.Windows.Forms.ListViewItem
If bRowsNum Then ' add row number [column]
listItem = lstComm.Items.Insert(RowCounter + RowCurOrder, RowCurOrder.ToString)
ColStartOrder = 0
Else
'if row info is empty ,not append it
If strItems(RowCounter).ToString.Trim.Equals("") Then
Continue For
End If
'add info to last row
strColValue = strItems(RowCounter)(0)
listItem = lstComm.Items.Insert(RowCounter + RowCurOrder - strInvaildRowCount, strColValue)
ColStartOrder = 1
If Not String.IsNullOrEmpty(strColValue) Then
bRowVaild = True
End If
End If
'add column
For ColCounter = ColStartOrder To strItems(RowCounter).Length - 1
Dim listItemsubItem As New System.Windows.Forms.ListViewItem.ListViewSubItem
strColValue = strItems(RowCounter)(ColCounter)
listItemsubItem.Text = strColValue
listItem.SubItems.Insert(ColCounter, listItemsubItem)
If Not String.IsNullOrEmpty(strColValue) Then
bRowVaild = True
End If
Next ColCounter
'if row'a all column is empty , row is invaild ,so delete it
If Not bRowVaild Then
Dim count As Integer = lstComm.Items.Count
lstComm.Items.RemoveAt(count - 1)
strInvaildRowCount += 1
End If
End If
Next RowCounter
End Sub
''' <summary>
''' 取得ListView中的所有数据
''' </summary>
''' <param name="lstCTL"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function list_getData(ByRef lstCTL As System.Windows.Forms.ListView) As String()()
If lstCTL Is Nothing Then
Return Nothing
End If
Dim iCount As Integer = lstCTL.Items.Count
Dim strItems(iCount - 1)() As String
Dim iLoop As Integer = 0
Dim iLooop As Integer = 0
'get list view data info
For iLoop = 0 To iCount - 1
Dim strItem As String()
Dim strCol As String = CStr("")
Dim start As Integer = 0
'Show RowsNumber
If bRowsNum Then
start = 1
End If
'get one row info
For iLooop = start To lstCTL.Items.Item(iLoop).SubItems.Count - 1
If iLooop <> start Then
strCol += ";"
End If
strCol += lstCTL.Items.Item(iLoop).SubItems.Item(iLooop).Text
Next
strItem = Split(strCol, ";")
strItems(iLoop) = strItem
Next
Return strItems
End Function
''' <summary>
''' 取得ListView中选择的行当数据
''' </summary>
''' <param name="lstCTL"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function list_getSeledData(ByRef lstCTL As System.Windows.Forms.ListView) As String()()
If lstCTL Is Nothing Then
Return Nothing
End If
'get select row count
Dim iCount As Integer = lstCTL.SelectedItems.Count
Dim strItems(iCount - 1)() As String
Dim iLoop As Integer = 0
Dim iLooop As Integer = 0
'get select info
For iLoop = 0 To iCount - 1
Dim strItem As String()
Dim strCol As String = CStr("")
Dim start As Integer = 0
'Show RowsNumber
If bRowsNum Then
start = 1
End If
'get one row info
For iLooop = start To lstCTL.SelectedItems.Item(iLoop).SubItems.Count - 1
If iLooop <> start Then
strCol += ";"
End If
strCol += lstCTL.SelectedItems.Item(iLoop).SubItems.Item(iLooop).Text
Next
strItem = Split(strCol, ";")
strItems(iLoop) = strItem
Next
Return strItems
End Function
''' <summary>
''' 删除选择的行
''' </summary>
''' <param name="lstCTL"></param>
''' <remarks></remarks>
Public Shared Sub list_DelData(ByRef lstCTL As System.Windows.Forms.ListView)
Dim selCount As Integer = lstCTL.SelectedItems.Count
Dim iLoop As Integer
If selCount >= 1 Then
For iLoop = selCount - 1 To 0 Step -1
lstCTL.SelectedItems.Item(iLoop).Remove()
Next
End If
End Sub
''' <summary>
''' 删除listView中的所有数据
''' </summary>
''' <param name="lstCTL"></param>
''' <remarks></remarks>
Public Shared Sub list_DelAllData(ByRef lstCTL As System.Windows.Forms.ListView)
Dim selCount As Integer = lstCTL.Items.Count
Dim iLoop As Integer
If selCount >= 1 Then
For iLoop = selCount - 1 To 0 Step -1
lstCTL.Items.Item(iLoop).Remove()
Next iLoop
End If
End Sub
''' <summary>
''' 更新一行数据
''' </summary>
''' <param name="lstCTL"></param>
''' <param name="Index ">行号,从0开始</param>
''' <param name="mapColValue ">修改的值对,列番号-列值一一对应</param>
''' <remarks></remarks>
Public Shared Sub list_UpdateSingleData(ByRef lstCTL As System.Windows.Forms.ListView, ByVal Index As Integer, ByVal mapColValue As Map)
Dim selCount As Integer = lstCTL.Items.Count
Dim iLoop As Integer
If Index < selCount Then
For iLoop = 0 To mapColValue.count - 1
lstCTL.Items.Item(Index).SubItems.Item(iLoop).Text = mapColValue.itemValue(iLoop)
' lstCTL.Items.Item(Index).SubItems.Item(mapColValue.itemKey(iLoop)) = listItemsubItem
Next iLoop
End If
End Sub
''' <summary>
''' delete listview all data info
''' </summary>
''' <param name="lstCTL"></param>
''' <remarks></remarks>
Public Shared Function list_GetSelIndex(ByRef lstCTL As System.Windows.Forms.ListView) As Integer
Dim selCount As Integer = lstCTL.Items.Count
Dim iRetValue As Integer = -1
If lstCTL.SelectedItems.Count > 0 Then
iRetValue = lstCTL.SelectedItems.Item(0).Index
End If
Return iRetValue
End Function
End Class
ListView 控制 VB.net相关推荐
- js建立excel表格_建立Excel足球联赛表格传统方法与动态数组
js建立excel表格 介绍 (Introduction) I am going to show you the different ways you can build a football lea ...
- 互联网最新开发语言_互联网是多语言的,但您需要学习普通话
互联网最新开发语言 The internet is becoming the town square for the global village of tomorrow. - Bill Gates. ...
- VB.NET 教程_03_面向对象
VB.Net - 类与对象 定义类时,可以为数据类型定义蓝图. 这实际上并不定义任何数据,但它定义了类名的含义,即类的对象将包含什么以及可以对这样的对象执行什么操作. 对象是类的实例. 构成类的方法和 ...
- vb 数组属性_VB中菜单编辑器的使用讲解及实际应用
大家好,今天我们共同来学习VB中菜单方面的知识. VB中菜单的基本作用有两个: 1.提供人机对话的界面,以便让使用者选择应用系统的各种功能: 2.管理应用系统,控制各种功能模块的运行. 在实际应用中, ...
- vb.net与FLASH的完美结合
(一) 在VB.net中播放Flash动画 怎样才能在VB.net中加入Flash动画呢?我们只要使用Flash5自带的Shockwave Flash.ocx这个控件就可以了.方法如下: 1. ...
- vb计算机怎么制作,教你如何制作VB的PCode调试器 -电脑资料
P-Code简介 术语P-Code既不是一个新名词也不是Microsoft的发明,P-Code只是简单地被解释执行的伪指令, MSVBVM50.DLL MSVBVM60.DLL 文件名称清晰的表明是M ...
- vant 验证手机号_手机维修英汉小辞典(V字头1:VA-VB)
V-volt 伏特 V-DCSLNA 1800MHz 低噪声放大器供电 V-GSMLNA 900MHz 低噪声放大器供电 V-ANA 多模转换器电源 V-ANT Voltage Antenna 天线供 ...
- 在VS中怎么用vb画矩形_电路图中如何判别NPN与PNP
点击"电工电气学习"关注即可免费订阅! NPN和PNP主要就是电流方向和电压正负不同,说得"专业"一点,就是"极性"问题. NPN 是用 B ...
- 微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
MSDN 程式開發講座: 微軟 ASP.NET 2.0 的 AJAX 利劍 - Atlas Framework 作者:奚江華 [ASP.NET網頁設計與C#]書籍作者 DotNet 開發聖殿 Blog ...
最新文章
- 用Construct 2制作入门小游戏~
- c语言用double最大,C语言里double类型的最大值和最小值是多少?
- Angular - angular2升级到angular8
- ENVI扩展工具:利用波段运算修改NaN方法总结
- easy ui dialog 关闭之后的怪异问题
- 毕业这几年的嵌入式开发之路
- 12、常见Conditional注解源码解析(ok)
- oracle 主键自动地址实现
- 在OL6.5_64上安装Oracle11gR2_64
- C语言 16进制转float
- [Java]面向对象编程
- office插件开发_PPT插件——OK之安装篇
- Python打印指定日期的日历
- C语言EasyX_2018中的putimage(x, y, w, h, img, x1, y1)函数
- Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1)
- reduce()用法
- Qt如何支持高分辨率屏幕(高分屏)
- 机票信息全方位实时采集方案
- 什么是专利权?专利有多少种类?
- 安卓手游模拟器有很多,不同于模拟器的TC Games为什么值得选择?