VB NET中使用ListView控件的简单例子
如何在VB中利用listview快速显示10000以上的记录
![如何在VB中利用listview快速显示10000以上的记录](https://img.taocdn.com/s3/m/4878e11acec789eb172ded630b1c59eef8c79af8.png)
如何在VB中利用listview快速显示10000以上的记录如何在VB中利用listview快速显示10000以上的记录listview显示起来美观,可就是速度不行比如下面的方式For i = 0 To 10000ListView1.ListItems.Add ListView1.ListItems.Count + 1, , ListView1.ListItems.Count + 1ListView1.ListItems.Item(ListView1.ListItems.Count).SubItem s(1) = ("你好啊")ListView1.ListItems.Item(ListView1.ListItems.Count).SubItem s(2) = ("你好啊")ListView1.ListItems.Item(ListView1.ListItems.Count).SubItem s(3) = ("你好啊")Next i用逐个添加速度很慢,看到一个avafind软件,几万行的数据显示出来只要零点几秒请问各位高手如何在VB中实现listview的快速显示呢?只要没有停顿感就好。
如果能解决,可再加100分------解决方案--------------------------------------------------------其实很简单,有种virtual模式就可以的啊,你可搜下相应的资料:)------解决方案--------------------------------------------------------先禁止列表重绘,再添加数据自己添加 LockWindowUpdate api,然后这样:LockWindowUpdate hWndListViewfor xxx。
给列表添加数据nextLockWindowUpdate 0&------解决方案--------------------------------------------------------LockWindowUpdate禁止LV控件重绘,然后开一个循环,不要加DoEvents,就直接添加全部数据,这样速度有显著提升。
VB.NET中GridView的使用
![VB.NET中GridView的使用](https://img.taocdn.com/s3/m/790e7336ae45b307e87101f69e3143323968f52c.png)
版的GridView经典使用Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArg s) Handles Me.LoadIf Not IsPostBack Thenbinddata()End IfEnd SubPublic Sub binddata()'End Sub'编辑中Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As Syste m.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditingGridView1.EditIndex = e.NewEditIndex'当前编辑行背景色高亮GridView1.EditRowStyle.BackColor = Color.FromName("#F7CE90")binddata()End Sub'分页Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.P ageIndexChangingGridView1.PageIndex = e.NewPageIndexbinddata() '重新绑定GridView数据的函数End Sub'更新Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As Sy stem.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUp datingDim clsB As New sqlDLTP.businessDim sqlstr As StringDim ds As New DataSetsqlstr = "select hbdwno from etsshbd where hbdcnm='" & CType(GridView1. Rows(e.RowIndex).FindControl("Text Box1"), TextBox).Text.ToString().Trim() & "' "ds = clsB.queryitem s(sqlstr)Dim wno As String = ds.Tables(0).Rows(0)(0).ToString().Trim()sqlstr = "update etsdl set okscore1='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox6"), TextBox).Tex t.ToString().Trim() & "',okscore2='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox7"), TextBox).Tex t.ToString().Trim() & "',okscore='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox8"), TextBox).Tex t.ToString().Trim() & "',okreport='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox9"), TextBox).Tex t.ToString().Trim() & "',okgrad='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox10"), TextBox).Te xt.ToString().Trim() & "',memo='" & _CType(GridView1.Rows(e.RowIndex).FindControl("TextBox12"), TextBox).Te xt.ToString().Trim() & "' where trano='" & _GridView1.DataKeys(e.RowIndex).Value.ToString() & "' and wno='" & wno & "'"clsB.ExeSqlCmd(sqlstr)GridView1.EditIndex = -1binddata()End Sub'取消Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e A s System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1. RowCancelingEditGridView1.EditIndex = -1binddata()End Sub'删除Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDelet ingDim clsB As New sqlDLTP.businessDim sqlstr As StringDim ds As New DataSetsqlstr = "select hbdwno from etsshbd where hbdcnm='" & CType(GridView1. Rows(e.RowIndex).FindControl("Label1"), Label).Text.ToString().Trim() & "'"ds = clsB.queryitem s(sqlstr)Dim wno As String = ds.Tables(0).Rows(0)(0).ToString().Trim()sqlstr = "delete etsdl where trano=" & GridView1.DataKeys(e.RowIndex).Va lue.ToString().Trim() & "and wno='" & wno & "'"clsB.ExeSqlCmd(sqlstr)binddata()End Sub'绑定行,特效及链接列属性分配等Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As S ystem.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowData BoundIf e.Row.RowType = DataControlRowType.DataRow Then'鼠标经过时,行背景色变e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F 5FA'")'鼠标移出时,行背景色变e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFF FF'")' HyperLink列给链接值CType(e.Row.Cells(1).FindControl("HyperLink1"), HyperLink).NavigateUr l = "javascript:void window.open('trashow.aspx?tno=" + CType(e.Row.Cells(1).Fi ndControl("HyperLink1"), HyperLink).Text + "','', 'left='+(window.top.screen.widt h-454)/2+',top='+(window.top.screen.height-454)/2+',width=625,height=500,sc rollbars=yes,resizeable=yes');"'当有编辑列时,避免出错,要加的RowState判断If e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate ThenIf CType(e.Row.Cells(12).FindControl("Label11"), Label).Text = "1" Th enCType(e.Row.Cells(12).FindControl("Label11"), Label).Text = "在职"End IfEnd IfEnd IfEnd Sub前台:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Wi dth=100% BackColor="White" BorderColor="White" BorderStyle="Ridge" Border Width="2px" CellPadding="3" CellSpacing="1" GridLines="None" AllowPaging="T rue" AllowSorting="T rue"><!-- --></asp:GridView>。
VBA实战系列(ListView控件)
![VBA实战系列(ListView控件)](https://img.taocdn.com/s3/m/3639f5054a35eefdc8d376eeaeaad1f347931159.png)
VBA实战系列(ListView控件)VBA项目实战__ListView控件应用ListView控件是一款非常优秀的表格控件,被广泛应用于VBA项目。
VBA使用者熟练地掌握此控件的用法,不仅能大大地增加自己学习VBA的兴趣,而且对实际工作也有很好的帮助。
一、Excel基础数据二、实现效果我们要通过VBA控件list view,实现如下图示效果三、实现过程(一)添加listview控件1.打开VBE编辑器,新建窗体flist2.添加listview控件。
在工具箱中选择listview控件放入窗体。
如工具箱中没有该控件,则应查找注册MSCOMCTL.OCX 文件。
我们可以按照以下方法进行注册:1)将文件解压到“C:\WINDOWS\system32”(WindowsXP);2)单击【开始】|【运行】命令,键入“regsvr32 C:\WINDOWS\system32 \MSCOMCTL.OCX ”(WindowsXP)”进行注册。
(二)添加代码1.添加表头Private Sub UserForm_Initialize()ListView1.ColumnHeaders.Add , , "日期", 64, 0ListView1.ColumnHeaders.Add , , "姓名", 54, 2ListView1.ColumnHeaders.Add , , "性别", 42, 2ListView1.ColumnHeaders.Add , , "年龄", 54, 2ListView1.ColumnHeaders.Add , , "联系方式", 54, 2ListView1.ColumnHeaders.Add , , "电话", 99, 2ListView1.ColumnHeaders.Add , , "诊断", 54, 2ListView1.ColumnHeaders.Add , , "手术名称", 86, 2ListView1.View = lvwReport '显示格式为报表格式ListView1.FullRowSelect = True '允许整行选中ListView1.Gridlines = True '显示网格线' ListView1.Sorted = True '排序End Sub以上代码中ListView1.ColumnHeaders.Add , , "日期", 64, 0中的64代表该表头字段的宽度,0代表居左显示方式。
vba listview控件用法例子
![vba listview控件用法例子](https://img.taocdn.com/s3/m/78c111660622192e453610661ed9ad51f11d5446.png)
vba listview控件用法例子VBA Listview控件用法示例在VBA编程中,Listview控件是一种非常有用的工具,它可以用于显示和管理大量数据。
Listview控件提供了一种可视化的方式来展示数据,并且可以方便地对数据进行排序、筛选和编辑。
以下是一个简单的示例,演示了如何使用VBA中的Listview控件。
首先,我们需要在VBA中添加Listview控件。
步骤如下:1. 打开VBA编辑器(按下Alt+F11)。
2. 在工具箱中找到"Microsoft Windows Common Controls",如果没有找到,可以右键点击工具箱,选择"其他控件",找到并勾选它。
3. 在VBA编辑器中的工具箱中,单击鼠标右键,选择"附加",然后选择"Microsoft Windows Common Controls X.X(其中X.X表示版本号)"。
4. 在工具箱中找到并单击"Listview"控件,然后在用户窗体上绘制一个Listview 控件。
接下来,我们可以使用以下代码示例来演示Listview控件的用法:```vbaPrivate Sub UserForm_Initialize()Dim i As Integer' 设置Listview控件的列标题With ListView1.View = lvwReport.ColumnHeaders.Add , , "姓名".ColumnHeaders.Add , , "年龄".ColumnHeaders.Add , , "性别"End With' 向Listview控件中添加数据With ListView1.ListItemsFor i = 1 To 10' 添加行Set itm = .Add(, , "姓名" & i)' 添加子项itm.SubItems(1) = "年龄" & iitm.SubItems(2) = "性别" & iNext iEnd WithEnd Sub```以上代码首先在用户窗体初始化事件中设置了Listview控件的列标题。
vb.net listview例子
![vb.net listview例子](https://img.taocdn.com/s3/m/6eda2244bb1aa8114431b90d6c85ec3a87c28b06.png)
中ListView控件使用详解及案例在中,ListView控件是一个非常强大的控件,它允许用户在Windows窗体应用程序中显示列表数据。
通过使用ListView控件,您可以轻松地展示、编辑和操作数据,并且可以根据需要自定义其外观和行为。
下面将详细介绍ListView控件的使用方法和案例。
一、添加ListView控件首先,您需要在Windows窗体中添加ListView控件。
可以通过拖拽ListView控件从工具箱将其添加到窗体上。
二、设置ListView属性在添加完ListView控件后,您需要设置其属性以定义其外观和行为。
以下是一些常用的属性:1.View:设置ListView的显示方式,可以选择大图标、小图标、列表或详细列表等。
2.FullRowSelect:设置是否选择整行。
3.Sorted:设置是否对ListView进行排序。
belEdit:设置是否允许编辑ListView中的标签。
rgeImageList:设置大图标的图像列表。
6.SmallImageList:设置小图标的图像列表。
7.SelectionMode:设置选择模式,可以选择单选或多选。
三、添加项目在设置完属性后,您需要向ListView中添加项目。
可以通过以下几种方式添加项目:1.手动添加:使用代码逐个添加项目。
例如:ListView1.Items.Add("Item1")。
2.绑定数据源:将数据源绑定到ListView,数据源可以是数组、集合或数据表等。
例如:ListView1.DataSource = dataTable。
3.拖放文件:将文件拖放到ListView中,可以自动创建项目并显示文件名。
四、案例:显示目录中的文件列表下面是一个简单的案例,演示如何使用ListView控件显示目录中的文件列表:1.创建一个Windows窗体应用程序。
2.在窗体上添加一个ListView控件。
3.设置ListView的属性,例如View设置为LargeIcon,SelectionMode设置为Single。
VB ListView的使用
![VB ListView的使用](https://img.taocdn.com/s3/m/2c998a29ed630b1c59eeb572.png)
VB ListView的使用ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。
ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。
(图7)ColumnHeader对象是ListView控件中包含标头文字的项目。
利用ColumnHeader对象,用户可以:▲单击对象触发ColumnClick事件并根据数据项目将项目排序。
▲拖动对象的右边框来调整列宽度。
▲在报表视图中隐藏ColumnHeader对象。
ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。
删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。
ColumnHeader对象的SubItemIndex属性该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。
子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。
第一列的列标头SubItemIndex属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。
列标头数目取决于子项目数目。
列标头数目总是比子项目数目多1。
在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。
ColumnHeader对象的Add方法该方法的使用与前面那些控件基本相似,就不再介绍了。
ListView1.ColumnHeader.Add(index,key,text,width,alignment)ListItem对象是指控件中的一行(不包含标头行)的所有内容。
VBAListView控件使用实例
![VBAListView控件使用实例](https://img.taocdn.com/s3/m/e9201fe780c758f5f61fb7360b4c2e3f56272553.png)
VBAListView控件使⽤实例功能:ListView控件实现连接数据库实现显⽰查询数据空能。
图⽚:代码:Private Sub CommandButton1_Click()Dim res As Stringres = TextBox1.TextCall UserFormabc(res)End Sub'ItemClick:Trigger an event when a row or ListItem is selected. To get ListItem Object which is selected.Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)Dim intX As Integer'Difine a variable as integerintX = ListView1.SelectedItem.IndexTextBox1.Text = ListView1.ListItems(intX).TextEnd SubPrivate Sub UserFormabc(Optional ByVal res As String = "")With ListView1 'To initialize listview.ColumnHeaders.Add , , "Project No.", 120, lvwColumnLeft.ColumnHeaders.Add , , "Project Name", 120, lvwColumnCenter.ColumnHeaders.Add , , "Department", 120, lvwColumnCenter.ColumnHeaders.Add , , "Date", 120, lvwColumnCenter.View = lvwReport 'The report format.LabelEdit = lvwManual 'Do not edit.Gridlines = True.FullRowSelect = TrueEnd WithDim cnn As StringDim rs As RecordsetDim sql As Stringcnn = "Provider=Microsoft.ACE.OLEDB.16.0;" & _"Data Source=D:\2\VBA\A3\database\A3db2019.accdb"If res = ""Thensql = "select A3_Project.*, A3_Dept.* from A3_Project left join A3_Dept on A3_Project.ProjectID=A3_Dept.ProjectID"Elsesql = "select A3_Project.*, A3_Dept.* from A3_Project left join A3_Dept on A3_Project.ProjectID=A3_Dept.ProjectID where A3_Project.ProjectID='" & res & "'"End IfSet rs = New Recordsetrs.Open sql, cnn, 1, 1ListView1.ListItems.ClearFor i = 1To rs.RecordCountWith ListView1.ListItems.Add() 'Add records.Text = rs.Fields("A3_Project.ProjectID") 'Add the first column .SubItems(1) = rs.Fields("ProjectName") 'Add the second column .SubItems(2) = rs.Fields("Department").SubItems(3) = rs.Fields("Date")rs.MoveNextEnd WithNextrs.CloseEnd SubPrivate Sub UserForm_initialize()Call CommandButton1_ClickEnd Sub。
VB中ListView的用法
![VB中ListView的用法](https://img.taocdn.com/s3/m/7cd6f12b26fff705cd170aeb.png)
VB中ListView的用法listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似:(1)无图标;(2)小图标;(3)列表;(4)报表式.使用哪种视图,可由该控件的view属性设置控制。
其中“报表”视图用来显示记录数据很适合.listview控件包括listItem对象和ColumnHeader对象。
本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。
listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列。
..。
.。
)。
而listItems即是对listItem对象集合(所有行)的引用。
故此,listItems(1) 可以表示为第1行;listitems(1).text 返回第1行第1列的文本值;listitems(1).subItem(1)返回第1行第2列的文本值.【控件常用属性】[1]view属性该属性有4个值可设定:1---小图标视图显示2---列表3---报表0---无图标(默认)[2]AllowColumnReorder属性值设置.t。
时,用户可以用鼠标选中1列拖至其他地方进行重新排列。
[3]Checkboxes属性设置为。
t。
时,每一行数据前将显示一复选框。
[4]FlatScrollBar属性设置为.f.时控件将显示滚动条.[5]FullRowSelect属性设置为.t.时可以整行地选择数据。
[6]GridLines属性设置为.t.时控件将显示网格线。
(只作用于“报表”视图)[7]HideColumnHeaders属性设置为。
f。
时,列标题可视,反之则不可视。
[8]HotTracking属性设置为。
t.时,鼠标所在行将以高亮度显示。
[9]Icons,SmallIcons属性两者设置listview控件视图相关联的ImageList控件中的图片。
Icons指明视图为大图标时的关联;SmallIcons指明视图为小图标时的关联。
VB.NET中LISTVIEW排序(原创)
![VB.NET中LISTVIEW排序(原创)](https://img.taocdn.com/s3/m/03da0176f4335a8102d276a20029bd64793e6254.png)
中LISTVIEW排序(原创)控件:TEXTBOX :1个 Name:txtJobNoBUTTON: 2个 Name:btnFilter,btnShowAllLISTVIEW : 1个 Name:lstvwJobNo Columns:JobNo,ContainerID,CartonID,PO,Style,Color,Size,ShipMent,Factory Sorting:none源代码:Imports System.Data.SqlClientDim con As New SqlConnectionDim varSQL As StringDim r As IntegerDim conString As String ="data source=127.0.0.1;initial catalog=mydb; uid=sa;password=123"'定义默认排序变量Dim mySort As String = "ASC"'定义默认字段变量Dim myField As String = "JOB.JOBNO"'过滤指定条件的记录Private Sub btnFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFilter.ClickTryDim fJobNo As String = ""fJobNo = txtJobNo.Text.Trim()r = List_dgJobNo(fJobNo)Catch ex As ExceptionMessageBox.Show(ex.ToString)FinallyIf con.State = ConnectionState.Open Thencon.Close()End IfEnd TryEnd Sub'显⽰所有记录Private Sub btnShowAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowAll.Click List_dgJobNo("")End Sub'函数功能:将读取出来的数据写⼊lstvwJovNo的表格中'函数名称:List_dgJobNo,调⽤格式:List_dgJobNo("10022"),List_dgJobNo("")'参数:fJobNo,要查询的⼯作号JOBNO,为空时则查询所有的'编写者:SD'⽇期:2005-9-23'转载请保留此信息Private Function List_dgJobNo(ByVal fJobNo As String) As IntegerTryCursor.Current = Cursors.WaitCursorlstvwJobNo.Items.Clear()con = New SqlConnection(conString)Dim cmd As SqlCommandDim rd As SqlDataReaderIf fJobNo.Length > 0 ThenvarSQL = "SELECT JOB.JOBNO,CONTAINERNO,CARTONFROM,PO,STYLE,COLOR,CARTONSIZE,SHIPMENT,FACTORY FROM JOB,JOB_LINE WHERE JOB.JOBNO=JOB_LINE.JOBNO AND JOB.JOBNO LIKE '%" & fJobNo & "%' "ElsevarSQL = "SELECT JOB.JOBNO,CONTAINERNO,CARTONFROM,PO,STYLE,COLOR,CARTONSIZE,SHIPMENT,FACTORY FROM JOB,JOB_LINE WHERE JOB.JOBNO=JOB_LINE.JOBNO "End IfvarSQL = varSQL & "ORDER BY " & myField & " " & mySort & ";"cmd = New SqlCommand(varSQL, con)rd = cmd.ExecuteReaderDim lsv As ListViewItemWhile rd.Readlsv = New ListViewItem(rd("JOBNO").ToString)'lsv.Checked = Truelsv.SubItems.Add(rd("ContainerNo").ToString)lsv.SubItems.Add(rd("CartonFrom").ToString)lsv.SubItems.Add(rd("PO").ToString)lsv.SubItems.Add(rd("Style").ToString)lsv.SubItems.Add(rd("Color").ToString)lsv.SubItems.Add(rd("CartonSize").ToString)lsv.SubItems.Add(rd("ShipMent").ToString)lsv.SubItems.Add(rd("Factory").ToString)lstvwJobNo.Items.Add(lsv)End WhileCursor.Current = Cursors.DefaultReturn List_dgJobNo = 1Catch ex As ExceptionMessageBox.Show(ex.ToString)Return List_dgJobNo = -1FinallyIf con.State = ConnectionState.Open Thencon.Close()End IfEnd TryEnd Function'获得排序的字段,并显⽰排序标记Private Sub lstvwJobNo_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lstvwJobNo.ColumnClickSelect Case e.Column.ToStringCase 0myField = "JOB.JOBNO"Case 1myField = "CONTAINERNO"Case 2myField = "CARTONFROM"Case 3myField = "PO"Case 4myField = "STYLE"Case 5myField = "COLOR"Case 6myField = "CARTONSIZE"Case 7myField = "SHIPMENT"Case 8myField = "FACTORY"End SelectDim i As IntegerFor i = 0 To 8lstvwJobNo.Columns(i).Text = lstvwJobNo.Columns(i).Text.Replace(" ▼", "").Replace(" ▲", "")NextIf mySort = "ASC" ThenlstvwJobNo.Columns(e.Column.ToString).Text = lstvwJobNo.Columns(e.Column.ToString).Text & " ▼" mySort = "DESC"ElsemySort = "ASC"lstvwJobNo.Columns(e.Column.ToString).Text = lstvwJobNo.Columns(e.Column.ToString).Text & " ▲" End IfDim fJobNo As String = ""fJobNo = txtJobNo.Text.Trim()r = List_dgJobNo(fJobNo)lstvwJobNo.Refresh()End Sub。
vb.net list用法
![vb.net list用法](https://img.taocdn.com/s3/m/163ad79b6e1aff00bed5b9f3f90f76c661374c39.png)
在 中,List 是一种泛型集合类型,用于存储对象的动态集合。
它提供了一组灵活的方法和属性,用于添加、删除、搜索和排序集合中的元素。
以下是关于 中 List 的常用用法和操作:创建 List 对象:Dim myList As New List(Of String)() ' 创建一个存储字符串的 List添加元素:myList.Add("Item1")myList.Add("Item2")myList.Add("Item3")删除元素:myList.Remove("Item2")访问元素:Console.WriteLine(myList(0)) ' 输出第一个元素遍历列表:For Each item As String In myListConsole.WriteLine(item)Next列表长度:Console.WriteLine(myList.Count) ' 输出列表中元素的数量排序列表:myList.Sort() ' 根据默认排序顺序对列表中的元素进行排序查找元素:Dim index As Integer = myList.IndexOf("Item3") ' 查找元素的索引清空列表:myList.Clear() ' 清空列表中的所有元素列表的泛型特性:可以使用 List 存储任何类型的对象,如整数、字符串、自定义类等。
Dim intList As New List(Of Integer)()intList.Add(1)intList.Add(2)intList.Add(3)Dim customList As New List(Of CustomClass)()customList.Add(New CustomClass())List 是 中常用的集合类型之一,它提供了一系列用于管理数据集合的方法,使得数据的操作变得更加简单和高效。
vb,读取excel表格数据并在listview控件中显示
![vb,读取excel表格数据并在listview控件中显示](https://img.taocdn.com/s3/m/680256a1d1d233d4b14e852458fb770bf78a3bee.png)
vb,读取excel表格数据并在listview控件中显示竭诚为您提供优质文档/双击可除vb,读取excel表格数据并在listview控件中显示篇一:Vb用listView读取excel实例Vb用listView读取excel实例第一步:用excel创建成绩表,如下图示例第二步:打开Vb6创建一工程、标准窗口第三步:引用excel,在菜单栏,工程——引用,如下图第四步:在工具栏加载控件microsoftwindowscommoncontrols6.0(sp6),如下图第五步:在标准窗口加入listview控件,控件属性设置如下图在“列首”标签添加字段名,如下图第五步:编写代码dimxlappasexcel.applicationprivatesubForm_load()setxlapp=createobject("excel.application")xlapp.Visible=Falsexlapp.workbooks.openapp.path查找列中所有的单元格setlitem=listView1.listitems.add()litem.text=xlapp.Range("a"checkifemptydataRowblnnullRow=trueForinti=1to10iftrim$(objimportsheet.cells(intcounti,inti).Value) ""thenblnnullRow=Falseendifnextinti若不是空行,则进行读取动作,否则继续向后遍历excel 中的行ifblnnullRow=Falsethen获取单元格中的数据,做有效性check,并将合法数据创建为实体存入对象数组中objimportsheet.cells(intcounti,1).Value……endifnextintcounti5、退出excel进程,并关闭excel相关操作对象objexcelFile.quit。
VBA窗体之ListView控件的基本应用VBA实例教程
![VBA窗体之ListView控件的基本应用VBA实例教程](https://img.taocdn.com/s3/m/d09ab94e793e0912a21614791711cc7931b7788c.png)
VBA窗体之ListView控件的基本应用VBA实例教程除非注明,文章均为战战如疯原创,转载请保留链接: /cat1/295.html,VBA交流群273624828。
今天我们来看一下VBA窗体中的ListView控件的基本用法。
ListView控件的最基本用法是在窗体中以表格形式显示数据,是应用非常广泛的一个窗体控件。
控件工具箱在初始状态下是没有ListView 控件的,需要我们在工具-附加控件中勾选"Microsoft ListView Control,Version 6.0",这样ListView控件就会显示在控件工具箱中了。
ListView分为表头和数据两部分,而数据部分的第一列和其他列又是分开的,需要用不同的方式来访问。
假设我们在Sheet1中有一个5行4列的表格,现在我们看下怎样将这个表格中的数据导入到ListView 控件中。
下面我们先来看怎样给ListView控件添加表头。
有两种方法,先来看第一种Private Sub UserForm_Initialize()ListView1.ColumnHeaders.Add 1, "A","姓名", ListView1.Width / 4,lvwColumnLeft '列数,key,text,宽度,对齐方式,图片ListView1.ColumnHeaders.Add 2, "B","性别", ListView1.Width / 4,lvwColumnCenterListView1.ColumnHeaders.Add 3, "C","年龄", ListView1.Width / 4,lvwColumnCenterListView1.ColumnHeaders.Add 4, "D","住址", ListView1.Width / 4,lvwColumnCenterListView1.View = lvwReport '显示方式ListView1.FullRowSelect = False '是否整行选取ListView1.Gridlines = True '是否显示表格线End Sub添加表头的第一种方法是用ColumnHeaders.Add的方法,该方法包括6个参数,比如上面第一行代码中1代表第一列,"A"是该列的一个简称(不写也可以),“姓名”是要显示的文字,下一个参数是宽度,这里我们一共4列,所以第一列宽度设为控件宽度(ListView1.Width)的1/4,第5个参数是对齐方式,其中第一列必须是左对齐的,其他列可以设置左右或居中对齐,第6个参数是图标索引,我们后面再讲,这里其中所有的参数都是可省略的,一般写上显示的文字和宽度即可。
VB2008中ListView两个常用效果的实现
![VB2008中ListView两个常用效果的实现](https://img.taocdn.com/s3/m/90d424c027fff705cc1755270722192e44365856.png)
VB2008中ListView两个常⽤效果的实现
ListView是⼀个简单实现的⽹格控件,在VB6.0中,这个控件因为很多缺陷⽽令⼈诟病。
在2008中,ListView有了不少改进,下⾯介绍两个常⽤效果的实现。
⼀、修改⾏⾼:
ListView控件没有⾏⾼这个属性,跟VB6.0⼀样,也只能使⽤ImageList控件来撑⾼的⽅式,但是实现起来却更简单,只需要三句代码即可。
ListView⾏⾼
1Dim ImgList As New ImageList
2 ImgList.ImageSize = New Size(1, 21)
3 ListView1.SmallImageList = ImgList
⼆、隔⾏背景换⾊:
在VB6.0中,要实现ListView控件的隔⾏背景换⾊,⼀般都是使⽤图⽚作背景,这种⽅法有个缺陷,就是Picture的⾼度有限制,如果ListView控件过⾼,那么下⾯的背景就显⽰不正常了。
在2008中,实现ListView隔⾏换⾊变得容易多了。
隔⾏背景换⾊
1 ListView1.Items.Item(1).UseItemStyleForSubItems = False'允许⼦单元颜⾊不⼀样
2If ListView1.Items.Count \ 2Mod2 = 0Then'隔⾏背景
3 ListView1.Items.Item(1).BackColor = Color.WhiteSmoke
4Else
5 ListView1.Items.Item(1).BackColor = Color.White
6End If
效果图如下:。
vba-listview控件操作
![vba-listview控件操作](https://img.taocdn.com/s3/m/35d2eac859f5f61fb7360b4c2e3f5727a5e92416.png)
vba-listview控件操作Private Sub UserForm_Initialize()Dim iDim itm As ListItemDim liMe.ListView1.ColumnHeaders.Add 1, "Q", "QQ号", Me.ListView1.Width / 3 '添加第⼀列Me.ListView1.ColumnHeaders.Add 2, "N", "昵称", Me.ListView1.Width / 3, lvwColumnCenter '添加第⼆列Me.ListView1.ColumnHeaders.Add 2, "D", "地区", Me.ListView1.Width / 3, lvwColumnRight '添加第⼆列Me.ListView1.View = lvwReport '显⽰外观Me.ListView1.Gridlines = True '是否有表格线'For i = 2 To [A65535].End(xlUp).Row '使⽤集合的⽅法添加' Set itm = Me.ListView1.ListItems.Add(Text:=Cells(i, 1))' Set li = itm.ListSubItems.Add(Text:=Cells(i, 2)) '集合添加,就是添加新的⼀列' Set li = itm.ListSubItems.Add(Text:=Cells(i, 3)) '添加在上⼀句的后⾯''NextFor i = 2 To [A65535].End(xlUp).Row '使⽤数组的⽅法添加Set itm = Me.ListView1.ListItems.Add() '先添加⼀个⾏对象,是除开标题(colunmheaders)⾏的⾏对象itm.Text = Cells(i, 1) '⾏对象的第⼀列itm.SubItems(1) = Cells(i, 2) '⾏对像的第⼆列itm.SubItems(2) = Cells(i, 3) '⾏对像的第三列Next'subitems是⼀个string 数组'ListSubItems 是⼀个集合'me.ListView1.ColumnHeaders.Remove "D" 删除key 是D的列,即此处的地区列End Sub'Me.ListView1.View = lvwIcon '普通视图'Me.ListView1.View = lvwList '列表视图,上下排列,⽆表格线'Me.ListView1.View = lvwSmallIcon '⼩图标视图'Me.ListView1.View = lvwReport '报表视图,有标题,可⼼显⽰表格线Me.ListView1.ListItems.Clear '清除所有列'筛选功能其实就是写个判断,等于筛选框的值,再添加值即可'从listview中输⼊数据到表格中时,按列⽅向循环For i = 1 To Me.ListView1.ColumnHeaders.Count '取列标题个数开始循环,先取第⼀列的标题,,再是第⼆列,第三列 Cells(1, i) = Me.ListView1.ColumnHeaders(i)For j = 1 To Me.ListView1.ListItems.Count '⾏的循环If i = 1 ThenCells(j + 1, i) = Me.ListView1.ListItems(j).TextElseCells(j + 1, i) = Me.ListView1.ListItems(j).SubItems(i - 1)End IfNextNext'选取的⾏输⼊到⼯作表中Me.ListView1.SelectedItem '表⽰正在选择的⾏Me.ListView1.SelectedItem.Text '第⼀列的值Me.ListView1.SelectedItem.SubItems (1) '第⼆列的值Me.ListView1.SelectedItem.SubItems (2) '第三列的值'添加红⾊字体⾏直接⽤增加新的⾏Set xxx = Me.ListView1.ListItems.Add()xxx.SubItems(2) = 123xxx.SubItems(3) = 234xxx.ForeColor = RGB(255, 0, 0) '列表颜⾊。
ListView 控件的使用
![ListView 控件的使用](https://img.taocdn.com/s3/m/f1f43123aaea998fcc220e2c.png)
ListView 控件可以用来显示各项带图标的列表,也可以用来显示带有子项的列表,Windows操作系统的资源管理器中文件夹窗口就是最好的应用例子。
如下图一所示就是“我的电脑”中使用ListView 控件来显示本机所有盘符:说明:可以通过“查看”菜单来观察其它三种显示方式,这些都是ListView的视图模式之一。
下面我们就先来了解下ListView控件的基本应用,在中的工具箱中,ListView 控件的图标如下图二所示:一、View 属性ListView 控件作为一个可以显示图标或者子项的列表控件,它最重要的属性就是 View 属性,该属性决定了以哪种视图模式显示控件的项,这四种视图模式分别如下:1、LartIcon:大图标视图模式,在项的文本旁显示大的图标,在控件宽度足够的情况下,项是如图一中的盘符一样优先以平行排列的,排列不完的则自动换行显示在新行中。
2、SmallIcon:小图标视图模式,与大图标模式一样,但是显示的是小的图标。
3、List:列表视图模式,显示小图标,但是项是垂直排列的,只显示单列。
4、Details:详细资料视图模式,是最丰富的选项,它不但允许您查看项,还允许您查看为各项指定的任何子项。
各项在网格中显示,它们垂直排列且其子项会显示在列中(带有列标头)。
对应地,只有在Details 视图模式中起作用的控件属性为:GridLines 和FullRowSelect,GridLines 属性指示在包含控件中项及其子项的行和列之间是否显示网格线。
FullRowSelect 属性指示单击某项是否选择其所有子项(即整行选中),如下图三所示便是GridLines 和 FullRowSelect 属性都设置为True的情况:ListView 控件中还有一个HeaderStyle 属性也是在Details 视图模式下才起作用,HeaderStyle 属性指示列标头样式,它有下面三种显示样式:1、Clickable:列标头的作用类似于按钮,单击时可以执行操作(例如排序)。
vb中listview的使用案例
![vb中listview的使用案例](https://img.taocdn.com/s3/m/cf1214300912a21614792981.png)
Dim cn As ADODB.ConnectionDim rs As ADODB.Recordset'定义一个连接对象和一个查询返回结果集Set cn = New ADODB.ConnectionSet rs = New ADODB.Recordset'创建两个对象cn.ConnectionString = "driver=SQL Server;server=IAN-PC;uid=sa;pwd=kingdee;database=CRM" cn.OpenDim sql As Stringsql = "select * from ian_1"rs.Open sql, cnListView1.View = lvwReportListView1.ColumnHeaders.Add , , "选择", 1000ListView1.ColumnHeaders.Add , , rs(0).Name, 1000ListView1.ColumnHeaders.Add , , rs(1).Name, 1000ListView1.ColumnHeaders.Add , , rs(2).Name, 1000ListView1.ColumnHeaders.Add , , rs(3).Name, 1000ListView1.ColumnHeaders.Add , , rs(4).Name, 1000'表头名称ListView1.GridLines = True '显示网格ListView1.Checkboxes = True '显示复选框'ListView1.FullRowSelect = True 整行记录全选上Dim a As Integera = rs.RecordCount + 1'MsgBox aDim x As Integerx = 1'取得rs的记录集While Not rs.EOF And Not rs.BOF '如果记录集没有读完继续读ListView1.ListItems.Add , , x '第一行选择复选框ListView1.ListItems(x).SubItems(1) = rs(0).ValueListView1.ListItems(x).SubItems(2) = rs(1).ValueListView1.ListItems(x).SubItems(3) = rs(2).ValueListView1.ListItems(x).SubItems(4) = rs(3).ValueListView1.ListItems(x).SubItems(5) = rs(4).Valuex = x + 1rs.MoveNext '下一行WendMsgBox "dd"。
VBA窗体之ListView基本应用
![VBA窗体之ListView基本应用](https://img.taocdn.com/s3/m/69aa2bda4793daef5ef7ba0d4a7302768e996f7b.png)
VBA窗体之ListView基本应用除非注明,文章均为战战如疯原创,转载请保留链接: cat4/298.html,VBA交流群273624828。
昨天在我们在VBA窗体之ListView基本应用中讲到了怎样设置ListView控件的表头和输入数据的两种方法,今天我们继续来看怎样将选中的数据输出和改变字体颜色。
我们先来看单行数据的输出Private Sub CommandButton2_Click()Dim iFor i = 1 ToListView1.ColumnHeaders.CountCells(7, i) =ListView1.ColumnHeaders(i) '输出表头If i = 1 ThenCells(8, i) =ListView1.SelectedItem.Text '第一列ElseCells(8, i) =ListView1.SelectedItem.SubItems(i - 1) '其他列End IfNextEnd Sub为了说明问题上面的代码我加了一个怎样输出表头的代码,平时用的话很少输出表头,SelectedItem表示被选中的那一行,自然第一列和其他列的表示方法还是分开的,不再多说了。
上面的代码是只选中一行的情况,那如果我选中了多行都需要输出怎么办,或者我要把整个ListView表格都输出怎么办?其实只要加一个判断该行是否选中的代码就可以了,选中的就输出,没选中的就不输出,输出全部的话连判断代码都免了。
直接看循环判断部分代码' For i = 1 To ListView1.ListItems.Count' If ListView1.ListItems(i).SelectedThen' MsgBox i & '行已经选中'' End If' Next上面的代码判断出哪行被选中,再对ListView.ListItems(i)进行操作即可。
vb.net listview根据标题引用
![vb.net listview根据标题引用](https://img.taocdn.com/s3/m/fee09386d4bbfd0a79563c1ec5da50e2524dd13a.png)
listview根据标题引用在前文中,我们介绍了如何使用 ListView控件展示数据。
接下来,我们将深入探讨如何根据标题引用对ListView进行排序、筛选和自定义外观。
一、根据标题引用排序在中,ListView控件默认使用ArrayList存储数据,因此我们可以通过ArrayList的Sort方法对数据进行排序。
以下是一个示例代码:```vbnetPrivate Sub SortListViewByTitle(sender As Object, e As EventArgs)Dim listView As ListView = CType(sender, ListView)Dim columnIndex As Integer = listView.Columns("Title").IndexDim sortedList As ArrayList = New ArrayList(listView.Items)sortedList.Sort(New CompareSubstringDelegate(AddressOf CompareTitle))For Each item As ListViewItem In sortedListlistView.Items.Add(item)NextEnd SubPublic Function CompareTitle(ByVal x As Object, ByVal y As Object) As IntegerDim str1 As String = CType(x, ListViewItem).TextDim str2 As String = CType(y, ListViewItem).TextReturn pareTo(str2)End Function```此代码首先获取ListView的标题列索引,然后创建一个新的ArrayList用于存储排序后的数据。
vb.net的数组列表(ArrayList)
![vb.net的数组列表(ArrayList)](https://img.taocdn.com/s3/m/ca6fd5e3900ef12d2af90242a8956bec0875a55a.png)
的数组列表(ArrayList)的数组列表(ArrayList)现在除了数组的长度计数是基于0开始的这个变化外,还引进了一个数组列表(ArrayList)对象来代替原来的集合(Collection)对象,集合对象的长度计数总是从1开始的,而且在需要的时候,数组列表的长度可以是不定的。
数组列表的基本的方法和集合一样,只不过它还具有一些新的功能方法。
例如:Dim Arl As ArrayList '构建一个数组列表For j=0 to 10Arl.Add(j)Next j所有的数组变量都有一个长度属性,这样就可以得知这个数组有多大:Dim Z(20) As SingleDim j As IntegerFor j=0 to z.Length-1Z(j)=jNext j在中所有的数组都是动态的,可以在任何时候重新定义数组的长度,然而,在中已经没有ReDim Preserve表述了,可以使用New关键字来对任何一个数组进行引用,并且重新定位:'在类模块级声明Dim X() As Single'重新定位X=New Single(20){}注意:数组类型后面的大括号不要忘记写。
和集合对象一样,数组列表含有一个“Count”属性和一个“Item”属性,允许使用“index”来访问数组列表中的元素。
而且,和集合对象一样,这个属性也可以省略,感觉就像操作数组一样:For i=0 to ar.Count-1Console.WriteLine(ar.Item(i))console.WriteLine(ar(i))Next i下表为数组列表的一些方法:注意:本部分讲座的数组是程序中声明的变量数组,不同于控件数组。
控件数组是在设计时通过设置控件的“Index”属性规定的,变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型。
当然,当数据类型为“object”时,各个元素能够包含不同种类的数据(对象、字符串、数值等)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
aHero = New hero
iItem = New ListViewItem
aHero.myName = firstName & i.ToString
aHero.myAge = System.Math.Round(rd.NextDouble * 100, 0)
s_like = value
End Set
End Property
End Class
'''
'''公共属性
'''
'''
Dim arrLike() As String = {"杀人", "放火", "吸毒", "抢劫", "盗窃", "上吊",
"自虐", "赌博", "偷窥", "飚车"}
Dim heroList As New SortedList
s_flag = True
Dim iItem As New ListViewItem
Dim aHero As New hero
Dim rd As New System.Random(Environment.TickCount * maxNumber)
aHero.myName = firstName & maxNumber.ToString
Me.lv1.CheckBoxes = True
Dim i As Integer
Const maxCount As Long = 10
Dim iItem As ListViewItem
Dim aHero As hero
For i = maxNumber To maxNumber + maxCount - 1
Me.lv1.Items.Clear()
Me.heroList.Clear()
maxNumber = 0
End Sub
'''
'''添加一项
'''
'''
'''
'''
Private Sub btnAddOne_Click()Sub btnAddOne_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles btnAddOne.Click
'''
'''英雄类
'''
'''
Public Class heroClass hero
Private s_name As String
Private s_age As Long
Private s_like As String
Public Property myName()Property myName() As String
heroList.Add(aHero.myName, aHero)NextΒιβλιοθήκη maxNumber = i
If Me.lv1.Items.Count > 0 Then
Me.lv1.Items.Item(0).Checked = True
End If
s_flag = False
End Sub
'''
'''选定所有项
Dim i As Integer
Dim delList As New SortedList
For i = 0 To Me.lv1.SelectedItems.Count - 1
heroList.Remove(Me.lv1.SelectedItems.Item(i).Text)
' Me.lv1.Items.Remove(Me.lv1.SelectedItems.Item(i))
aHero.myLike = createLike(i)
iItem.Text = aHero.myName
iItem.Tag = aHero
iItem.SubItems.Add(aHero.myAge)
iItem.SubItems.Add(aHero.myLike)
Me.lv1.Items.Add(iItem)
'''查找所有选定项
'''
'''
'''
'''
Private Sub btnFindCheckted_Click()Sub btnFindCheckted_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles btnFindCheckted.Click
aHero.myLike = createLike(1)
iItem.Text = aHero.myName
iItem.Tag = aHero
iItem.SubItems.Add(aHero.myAge)
iItem.SubItems.Add(aHero.myLike)
Me.lv1.Items.Add(iItem)
Get
Return s_name
End Get
Set(ByVal value As String)
s_name = value
End Set
End Property
Public Property myAge()Property myAge() As Long
Get
Return s_age
End Get
String
Dim j As Long
Dim k As Long
Dim str As New System.Text.StringBuilder
For j = arrLike.GetLowerBound(0) To arrLike.GetUpperBound(0)
Dim rd As New System.Random(Environment.TickCount * (i + 1) * j /
'''
'''
'''
'''
Private Sub btnCheckAll_Click()Sub btnCheckAll_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles btnCheckAll.Click
s_flag = True
Dim maxNumber As Long
Const firstName As String = "塞北的雪"
Dim s_flag As Boolean
'''
'''生成随即爱好
'''
'''
'''
'''
Private Function createLike()Function createLike(ByVal i As Long) As
aHero.myAge = System.Math.Round(rd.NextDouble * 100, 0)
aHero.myLike = createLike(maxNumber)
iItem.Text = aHero.myName
iItem.Tag = aHero
iItem.SubItems.Add(aHero.myAge)
If Me.lv1.Items.Count > 0 Then
Dim i As Integer
For i = 0 To Me.lv1.Items.Count - 1
Me.lv1.Items.Item(i).Checked = True
Next
End If
s_flag = False
End Sub
'''
delList.Add(Me.lv1.SelectedItems.Item
(i).Text,Me.lv1.SelectedItems.Item(i))
sender As System.Object, ByVal e As System.EventArgs) Handles
btnDeleteSelected.Click
If Me.lv1.Items.Count > 0 Then
If Me.lv1.SelectedItems.Count > 0 Then
100)
k = System.Math.Round(rd.NextDouble * 100, 0)
If k Mod 2 = 0 Then
str.Append(" ")
str.Append(arrLike(j))
End If
Next
Return str.ToString
End Function
'''
'''装载数据