VB.NET中的treeview控件''' summary
''' 加入菜单子节点
''' /summary
''' param name="tbMenu"菜单表/param
''' param name="tvNode"父节点/param
''' remarks/remarks
Private Sub AddNode(ByVal tbMenu As DataTable, ByVal tvNode As TreeNode)
Dim myRow As DataRow() = tbMenu.Select(String.Format("PRMENUID = '{0}'", tvNode.NodeID), "SORTORDER")‘查询子菜单vb.net视图控件,按SORTORDER字段排序
Dim strURL As String = String.Empty‘菜单链接
For Each DataRow In myRow’循环所有子菜单
Dim MainMenuNode As TreeNode = New TreeNode() With {.Text = DataRow.Item("VALUE"), .NodeID = DataRow.Item("MENU_ID")}'实例化一个子节点
If DataRow.Item("URL").ToString.Length0 Then
strURL = String.Format("{0}?menuid={1}", DataRow.Item("URL"), DataRow.Item("MENUID"))’菜单链接
MainMenuNode.NavigateUrl = strURL
MainMenuNode.IconUrl = "../image/leaf.gif"‘菜单图标
End If
MainMenuNode.SingleClickExpand = True’设置单击菜单时展开子菜单
MainMenuNode.Expanded = True‘默认展开所有菜单
tvNode.Nodes.Add(MainMenuNode)’将子节点添加进父节点
AddNode(tbMenu, MainMenuNode) '利用递归生成树形菜单
Next
End Sub
希望对vb.net视图控件你有帮助 。
VB.NET ListView1控件添加数据要使用ListView控件,需要加入组件:
Microsoft Windows Common Controls 6.0
Windows资源管理器的右半部分,就是一个ListView控件 。
作用
列出并列关系的对象及对象属性 。
ListView控件的对象层次结构
ListView -整个控件
ColumnHeaders -标题行
ColumnHeader -标题列
ListItems -对象行集合
ListItem -对象行
ListSubItems -对象属性集合
ListSubItem -对象属性
注意:SubItems和ListSubItems的区别:SubItems是一个String数组;ListSubItems是一个集合 。
属性
View:设置ListView的外观
Sorted:设置ListView中的对象集合是否排序 。
SortKey:设置以第几项排序 。从零开始 。
SelectedItem:返回选中的对象的引用 。
事件
AfterLabelEdit:编辑ListItem对象的标签时被触发 。
BeforeLabelEdit:编辑ListItem对象的标签后出发 。
ColumnClick:单击列标题时触发 。参数中可以获得被单击的列对象 。通常用于排序 。
ItemClick:单击某行或某ListItem时触发 。参数中可以获得被单击的ListItem对象 。
方法
FindItem:搜索ListItem对象 。
参数:
string:搜索字符串 。
value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置 。
match:匹配方式 。
HitTest:检索位于特定坐标处的ListItem对象 。
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对象是指控件中的一行(不包含标头行)的所有内容 。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件 。
ListItem对象的SubItems属性
返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据 。
ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同 。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目 。
ListItem对象的Add方法
该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用 。
它的语法如下:
ListItem1.Add(index,key,text,icon,smallIcon)
ListView控件的View属性
ListView控件可使用四种不同视图显示项目,这可以用View属性来确定 。该属性返回或设置ListView控件中ListItem对象的外观 。
ListView控件的SortOrder,SortKey和Sorted属性
控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder , Sorted和SortKey属性 。
SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序 。
SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序 。
Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值 。
下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序 。
Private Sub Form_load()
'确保ListView控件的view属性为报表视图 。
ListView1.View=lvwReport
'添加三列 。
ListView1.ColumnHeaders.Add,"Name","姓名"
ListView1.ColumnHeaders.Add,"Sex","性别"
ListView1.ColumnHeaders.Add,"Age","年龄"
'向控件添加ListItem对象 。
Dim itmX As ListItem
'添加column1的名称 。
Set itmX=ListView1.ListItems.Add(1,"ZL","张力")
'使用SubItemIndex将SubItem与正确的ColumnHeader关联 。使用关键字("Sex")指定正确的ColumnHeader 。
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
'使用ColumnHeader关键字将SubItems字符串与
'正确的ColumnHeader关联 。
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"
Set itmX=ListView1.ListItems.Add(1,"LF","李芳")
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"
Set itmX=ListView1.ListItems.Add(1,"WW","王伟")
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As ComctlLib.ColumnHeader)
Select Case ColumnHeader.Key
Case "Sex":ListView1.SortKey=1
ListView1.SortOrder=lvwAscending
ListView1.Sorted=True
Case "Age":ListView1.SortKey=2
ListView1.SortOrder=lvwAscending
ListView1.Sorted=True
End Select
End Sub
vb.net 文件夹操作vb.net使用控件FolderBrowserDialog1,在程序中:
'设置对话框中在树视图控件上显示的说明文本
Me.FolderBrowserDialog1.Description
=
"请选择输出报表所在路径:"
'设置从其开始浏览的根文件夹
Me.FolderBrowserDialog1.SelectedPath
=
"c:\"
If
Me.FolderBrowserDialog1.ShowDialog()
=
DialogResult.OK
Then
'取得全路径(包含文件名)
reportPath1
=
System.IO.Path.GetFullPath(Me.FolderBrowserDialog1.SelectedPath)
'设定text显示文件名
txtReport1.Text
=
reportPath1
setReportList()
End
If
在setReportList()中针对你所需要的文件进行操作等
vb.net dataview 的用法定制数据视图
DataView类用来表示定制的DataTable的视图 。DataTable和DataView的关系是遵循著名的设计模式--文档/视图模式,其中DataTable是文档,而Dataview是视图 。
在任何时候,你都可以有多个基于相同数据的不同的视图 。更重要的是,你可以对每一个具有自己一套属性、方法、事件的视图作为独立的对象进行处理 。这也代表了相对ADO一个巨大的飞跃 。
创建DataView
public DataView();
public DataView(DataTable);
DataView只有同已经存在的、很可能是非空的DataTable对象连接后才可用 。通常 , 这个连接在构造时就指定了 。
DataView dv;
dv = new DataView(theDataSet.Tables["Employees"]);
但是 , 你也可以先创建一个新的视图,然后再用Table属性同表相关联 。
DataView dv = new DataView();
dv.Table = theDataSet.Tables["Employees"];
DataView构造函数使你由DataTable中得到一个DataView对象 。如果需要,反之亦可 。事实上,DataTable对象的DefaultView属性返回一个该表的DataView对象 。
DataView dv = dt.DefaultView;
一旦你有了DataView对象,你可以利用它的属性来建立你希望用户见到的数据行集 。一般,你可以使用下列属性:
RowFilter
Sort
前者可以定制视图中可见数据应匹配的规则 。而后者通过表达式来进行排序 。当然你可以使用这两者的任意组合 。
设置过滤 RowFilter是一个可读写的属性,用来读取和设置表过滤的表达式 。
public virtual string RowFilter {get; set;}
你可以用列名,逻辑和数字运算符和常量的任意合法组合组成表达式 。以下是一些例子:
dv.RowFilter = "Country = 'USA'";
dv.RowFilter = "EmployeeID 5 AND Birthdate#1/31/82#"
dv.RowFilter = "Description LIKE '*product*'"
让我们来看一下过滤器的基本规则和运算符 。
过滤字符串是表达式的逻辑连接 。可以用AND,OR,NOT来连接成一个较短的表达式,也可以使用圆括号来组成子句 , 指定优先的运算 。
通常包含列名的子句同字母、数字、日期或另一个列名进行比较 。这里 , 可以使用关系运算符和算术运算符,如=, , ,, *, % (取模)等等 。
如果要选取的行并不能方便地通过算术或逻辑运算符表达 , 你可以使用IN操作符 。以下代码显示如何选取一个随机行:
dv.RowFilter = "employeeID IN (2,4,5)"
你也可以使用通配符*和%,它们同LIKE运算符一起使用时显得更有用 。它们都表示任意数量的字符,可以相互替代使用 。
请注意,如果在LIKE子句中已经有了*或%字符,你必须用方括号将其括起,以免歧义 。如果很不幸,字符串中方括号本身也存在了,那么它也必须用将本身括起 。这样 , 匹配语句会如下所示:
dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"
通配符只允许在过滤字符串的开头或结尾处使用,而不能在字符串中间出现 。例如,下列语句会产生运行时错误:
dv.RowFilter = "Description LIKE 'prod*ct"
字符串必须以单引号括起 , 而日期型必须以#符号括起 。字符型值可以使用小数点和科学计数法 。
RowFilter也支持聚合函数 , 如SUM, COUNT, MIN,MAX, and AVG 。如果表中没有数据行,那么函数将返回NULL 。
在介绍RowFilter表达式的最后 , 让我们讨论三个很便利的函数:Len , IIF和Substring 。
正如其名,Len()返回特定表达式的长度 。该表达式可以是一个列名 , 也可以是其他合法的表达式 。
Substring()返回指定的表达式自特定位置开始,特定长度的字符子串 。
我最喜欢用的是IIF(),它按照逻辑表达式的值有一到两个值 。IIF是IF-THEN-ELSE语句的紧凑表达 。语法如下:
IIF(expression, if_true, if_false)
通 过该函数,可以建立非常复杂的过滤字符串 。例如,假定你从SQL Server的Northwind数据库中取得Employees表,下列表达式可以选出那些employeeID小于6且lastname为偶数个字符 和employeeID大于6且lastname为奇数个字符的员工 。
IIF(employeeID6, Len(lastname) %2 =0, Len(lastname) %2 0)
预排视图
在上面的举例中,datagrid必须负责预排视图中的数据行,以便刷新用户界面 。这个自动机制是.NET
数据绑定的产物 。Datagrid是通过DataSource属性来获取数据的数据绑定控件 。DataView是一个可数据绑定的类,可构建DataSource属性的内容 。
如果你想使用datagrid之外的另一个控件 , 应该怎么办呢?又如果你不想使用自动数据绑定呢?应该怎样预排视图中所选的数据行呢?
DataView的Table属性指向相应的数据表,但DataTable并不保存过滤信息 。所以,预排表中的数据注定是不可行的 。虽然DataTable和DataView是紧密相联的,但它们各自保持独立,并执行独立的功能 。
以下Visual Basic .NET代码段显示了如何遍历视图中所有的数据行,并加入到listbox中 。
Dim dv As New DataView()
dv = ds.Tables("Employees").DefaultView
dv.RowFilter = "employeeid 5"
ListBox1.Items.Clear()
Dim buf As String
Dim dr As DataRowView
For Each dr In dv
buf = ""
buf = dr("lastname").ToString() ", "dr("firstName").ToString()
ListBox1.Items.Add(buf)
Next
正如前面说提到的,DataView是可枚举的类,因此你可以安全的将它传给For..Each语句 。Count属性存储了视图中数据行数,以便在For..Next循环中使用 。
要访问视图中某一行,可以使用DataRowView类 。DataRowView可表示DataRow的视图 , 就像DataView表达DataTable定制的视图一样 。
总的来说,DataRow最多有四种状态:default,original,current和proposed 。这些状态由DataRowVersion枚举类型设置,由RowVersion属性表达 。
DataRow的视图只能是其中某一种状态 。
数据行的默认(default)版本只有当其列在构造时设定了默认值时才有 。而初始(original)版本是指在最后一次调用表的AcceptChanges后 , 从数剧源中得到数据行或快照 。当前(Current)版本是指当前的数据行 , 包括所有当时发生的更新 。Proposed状态只存在于调用BeginEdit和EndEdit的编辑过程中 。
可以通过访问DataRow相同的语法访问DataRowView 。这里最重要的属性叫Item 。
排序和其他便捷的特性
DataView支持Sort属性,可以用来对视图中的内容排序 。Sort由用逗号分隔的列名表达式进行排序 。通过在任何列名后加ASC或者DESC限定词,可以使得字段按照上升或者下降的顺序排列 。如果没有方向限定词,默认顺序为ASC 。
DataView是内存中的对象 , 所以排序在本地进行,无需调用数据库服务器 。
RowStateFilter是DataView另一有趣的属性 。它可以用任何预定义的标准来过滤DataTable中的内容 。下表中是DataViewRowState枚举类型的所有取值:
CurrentRows包括所有未更新的、新的和修改的数据行Deleted所有自上次调用AcceptChanges后删除的数据行ModifiedCurrent所有自上次调用AcceptChanges后修改过的数据行ModifiedOriginal所有自上次调用AcceptChanges后original版本的数据行New所有自上次调用AcceptChanges后新添加的行OriginalRows返回初始数据行,包含unchanged和deleted 的Unchanged所有未更新的数据行
如果要操作非连接的数据,所有更新都在对DataTable调用AcceptChanges后生效 。对单一行的更新在调用DataRow的AcceptChanges后生效 。类似的 , 这些更新可以通过调用DataTable或DataRow对象的RejectChanges来取消 。
DataView对象还有一些属性,如AllowEdit,AllowDelete和AllowNew , 用来得到或设定是否允许更新的值 。它们的默认值设为True,允许任何种类的更新 。如果在标志设为False时,你想要完成相应的更新操作,会有一个运行时错误发生 。
DataViewManager类
DataTable对象的DefaultView属性用来返回一个DataView对象,作为数据表中内容的默认视图 。它按照自然顺序读取数据并显示表中所有的行,而不使用任何过滤 。
theMasterGrid.DataSource = m_ds.Tables("Employees").DefaultView
如果需要数据特定的视图,你可以进行排序并/或对DefaultView对象直接进行过滤 。
m_ds.Tables("Employees").DefaultView.Sort = "lastname"
theMasterGrid.DataSource = m_ds.Tables("Employees").DefaultView
DataViewManager类是用来存储DataSet中所有表的视图设置 。
可以通过传递一个合法的非空的DataSet给类的构造函数来创建DataViewManager
Dim dvm As DataViewManager
dvm = New DataViewManager(m_ds)
也可以通过DataSet对象的DefaultViewManager属性直接得到:
Dim dvm As DataViewManager = m_ds.DefaultViewManager
重要的是DataViewManager类是同一个DataSet相关联的 。下面是另一种可行的方法:
Dim dvm As New DataViewManager()
dvm.DataSet = m_ds
DataViewManager最重要的属性是DataViewSettings,一个DataViewSetting对象的集合 。
Dim dvs As DataViewSetting
dvs = dvm.DataViewSettings("Employees")
dvs.Sort = "lastname"
DataViewSetting对象包含了表视图的参数信息 。当将数据绑定到对数据敏感的控件时,使用DataViewManager而不是DataSet或DataTable可以保留你的视图设置(过滤和排序字段)
theMasterGrid.DataSource = dvm
theMasterGrid.DataMember = "Employees"
在这里 , 视图按照DataViewSetting中对Employees表指定的自动进行排序和过滤 。换而言之,DataViewSetting类是对特定表的视图的一种缓存 。
VB.NET中 ListView控件问题Me.ListView1.View = View.Details '显示方式
Me.ListView1.SmallImageList = ImageList1 '显示为小图标时使用
增加上面的两句代码就能显示图片,还需要配置 ImageList1----这个你应该会
比如你ListView1.Items.Add(mylistitem)追加进入的是第0行 , 那么追加图片的代码是: ListView1.Items(0).ImageIndex = 2
'-------下面回答你的第二个问题-----------------------------------
Me.ListView1.Items(1).SubItems(2).Text = "你想要更改成的值"'---------这里是不是 Me.ListView1.Items(2).SubItems(3).Text = "你想要更改成的值"是因为索引是从0开始的
【关于vb.net视图控件的信息】vb.net视图控件的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于、vb.net视图控件的信息别忘了在本站进行查找喔 。
推荐阅读
- 阿里电商如何开通,如何在阿里开网店
- 关注风电公众号,最新关注公众号秒到红包
- 窗帘直播的技巧,窗帘主播的工作怎么样
- java二维数组转置代码 java二维数组转置代码怎么写
- 安卓软件被拦截,安卓下载被拦截
- php数据post提交,phppost提交代码
- 免费pdf转word在线转换,pdf转word在线转换免费软件
- 克隆windows系统盘的简单介绍
- 计算list的维度python,python list的维度