信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 4752|回复: 11
打印 上一主题 下一主题

[『VB.NET 图文教程』] VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧

[复制链接]

1887

主题

1897

帖子

1万

积分

积分
11042
跳转到指定楼层
宣传软件楼主
发表于 2017-5-25 00:25:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:VB.NET 图文教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件高级教程 

软件教程发布日期:2017-05-25

软件教程关键字:VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述

1、首先建立一个数据库,名字为shiyan 完整的数据库名字为shiyan.mdb 在里面建一个表,名字为genjiediantable01并设计表,添加两个字段分为:1、字段名称:id 数据属性:自动编号,2、数据属性:gjdmz 文本 如下图:

VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件

2、把这个数据库放在E盘下,视个人情况而定,关键是这个数据库所在的路径

3、打开VS.2005 在设计区添加treeview控件,默认名字为treeview1 如下图

VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件

4、点击项目——引用——COM 添加 如下图:

VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件


5、在控件上点击右键选择查看代码:并输入代码如下图:
VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件

Public Class Form1
    Dim myconnection As New OleDb.OleDbConnection()
    Dim MyAdapater As New OleDb.OleDbDataAdapter()
    Dim mycommand As New OleDb.OleDbCommand()
    Dim ds As New DataSet()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\shiyan.mdb"
        mycommand.CommandText = "select id,gjdmz from genjiediantable01"
        mycommand.Connection = myconnection
        Try
            myconnection.Close()
            myconnection.Open()
            Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader
            TreeView1.Nodes.Clear()
            While mysqlreader.Read()
                Dim tree_root As New TreeNode()
                tree_root.Tag = mysqlreader.GetValue(0)
                tree_root.Text = mysqlreader.GetString(1)
                TreeView1.Nodes.Add(tree_root)
            End While
        Finally
            myconnection.Close()
        End Try
        TreeView1.ExpandAll()
        TreeView1.Select()

    End Sub
End Class

F5 运行调试出现下图

VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件

代码分析:全文的精华

1、定义公用变量

Dim myconnection As New OleDb.OleDbConnection() ‘连接Access数据库,则可以使用OleDB来实现。定义一个数据库连接,表示到数据源的连接是打开的。

Dim ds As New DataSet() 定义一个数据集,与数据库的表相对应
    Dim MyAdapater As New OleDb.OleDbDataAdapter() 定义一个数据库接口 相关内容在
    Dim mycommand As New OleDb.OleDbCommand() ’定义数据库连接命令
   明天再分析,有点累了!

接着昨天的分析

myconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\shiyan.mdb" '数据库连接字串
        mycommand.CommandText = "select id,gjdmz from genjiediantable01" ’数据库连接命令 意思是在表中genjiediantable01中查询所有根结点的编号和名称,对应的是id,gjdmz 两个字段
        mycommand.Connection = myconnection 连接数据库并执行相关的命令
        Try
            myconnection.Close() ‘关闭到数据源的连接
            myconnection.Open()’连接池中提取一个打开的连接(如果有可用的连接)。否则,它就建立一个到数据源的新连接

Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader ‘将 CommandText 发送到 Connection 并生成一个 OleDbDataReader
           

TreeView1.Nodes.Clear()  

            While mysqlreader.Read()‘OleDbDataReader 的默认位置在第一条记录前面。因此,必须调用 Read 来开始访问任何数据
                Dim tree_root As New TreeNode()’ 定义一个表示 TreeView 控件中的节点。
                tree_root.Tag = mysqlreader.GetValue(0)‘把编号放入tag中
                tree_root.Text = mysqlreader.GetString(1)’树上显示的是根节点名称gjdmz
                TreeView1.Nodes.Add(tree_root)
            End While
        Finally
            myconnection.Close()
        End Try ‘Try...Catch...Finally 语句 (Visual Basic)
        TreeView1.ExpandAll() '打开树中的每个节点
        TreeView1.Select() '选择 TreeView

 提要:在VB6中,常将TreeView用来表示层次数据,但相关的与数据库进行交互的代码,需要大量的采用手工编码;在VB.net中,由于数据绑定功能的加强及语言特性的增强,可以很容易的实现TreeView与层次数据的绑定,本文将首先建立一个继承自TreeView的 dbTreeView,然后用一个单位(部门)的层次数据与dbTreeView进行数据绑定,并提供了与数据库进行交互的代码。

  1、从层次数据的表达方式开始

  在本例中,部门表(department)中有五个字段,如下表:

字段名 字段 类型说明
  ID 自动编号 Key
  Code String 编码
  Name String 名称
  PID Int 父结点的ID
  CPtr boolean 是否有子结点
  2、继承自TreeNode的myTreeNode

  在myTreeNode中,新增了三个属性,如下表:

属性名 类型 说明
  Value Object Key
  PID Object 父结点的ID
  CPtr Boolean 是否有子结点
  在Init事件中,根据传入的四个参数,设置这三个属性和Text属性。

  3、将dbTreeView绑定到数据源

属性名 类型 说明
  Datasource dataview dbTreeVIew的数据源使用dataview,而不是object
  Value Member string值成员(数据源[dataview]的列名)
  Display Member string显示(在Text中)成员
  Pid Member string父ID成员
  CPtr Member string是否有子结点
  后四个属性对应myTreeNode的value,text,pid,cptr。

  相关代码如下:

Protected Property DataSource() As Object
  Get
  Return mDataView
  End Get

 Set(ByVal Value As Object)
  If Value Is Nothing Then
  Else
  mDataView = Value
  cm = CType(Me.BindingContext(mDataView), CurrencyManager)
  UpdateTreeView()
  End If
  End Set
  End Property

Protected Property PidMember() As String
  Get
  Return mPidMember
  End Get
  Set(ByVal Value As String)
  mPidMember = Value
  End Set
  End Property

Protected Property DisplayMember() As String
  Get
  Return Join(mDisplayMember, SplitChar)
  End Get
  Set(ByVal Value As String)
  mDisplayMember = Split(Value, SplitChar)
  End Set
  End Property

'注意,这几个属性都是保护成员,必须在Init事件中设置:

Public Sub Init(ByVal dispmember As String, ByVal valuemember As String, ByVal pidmember As String, ByVal cptrmember As String, ByVal datasource As DataView)
  Me.ValueMember = valuemember
  Me.DisplayMember = dispmember
  Me.PidMember = pidmember
  Me.CPtrMember = cptrmember
  Me.DataSource = datasource
  '取value最大值,新增时将value+1,保证关健值唯一。
  Me.mDataView.Sort = Me.ValueMember
  Me.m_MaxID = Me.GetValue(Me.mDataView.Count - 1)
  End Sub


  设置DisplayMember属性的格式如:字段1;字段2;字段3…,

在设置属性时,将传来的参数转换为字符串数组mDisplayMember,在检索值时返回数据如:值1 值2 值3.…


Protected Overridable Function GetDisplay(ByVal Index As Integer) As Object
  Dim i As Integer
  Dim temp As String = ""
  For i = 0 To mDisplayMember.Length - 1
  temp = temp & IIf(i > 0, LinkChar, "") & mDataView(Index)(mDisplayMember(i))
  Next
  Return temp
  End Function

  其它检索值的函数请参见源程序。
  生成树

  UpdateTreeView调用私有方法FillTree来生成树,需要注意的,FillTree只是生成指定结点的子结点并将其添加到指定结点,而不是一次就将所有结点添加到树中,如果未指定结点(第一次填充时),只是添加顶层结点。

Private Sub FillTree(ByRef pnode As myTreeNode, Optional ByVal filter As String = "")
  mDataView.RowFilter = filter
  Dim i As Integer, icol As Integer
  Dim newnode As myTreeNode
  RemoveHandler cm.PositionChanged, AddressOf cm_PositionChanged
  Me.BeginUpdate()
  For i = 0 To mDataView.Count() - 1
  newnode = New myTreeNode(GetDisplay(i), GetValue(i), GetPid(i), GetCPtr(i))
  '当有子结点时,为这个结点添加一个空子结点
  If newnode.CPtr Then
  Dim nullnode As New myTreeNode()
  nullnode.Value = NoExpandNodeValue
  newnode.Nodes.Add(nullnode)
  End If
  If pnode Is Nothing Then
  Me.Nodes.Clear()
  Me.Nodes.Add(newnode)
  Else
  pnode.Nodes.Add(newnode)
  End If
  Next
  Me.EndUpdate()
  mDataView.RowFilter = ""
  AddHandler cm.PositionChanged, AddressOf cm_PositionChanged
  End Sub

  在展开有子结点的结点前,删除所有子结点,再用FillTree为待展开结点新增子结点。

Private Sub dbTreeView_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles MyBase.BeforeExpand
  '当是新增结点引起BeforeExpand事件时,直接退出。
  If ExpandWhenAddNode Then Exit Sub
  '在展开结点前更新子结点
  Dim currentnode As myTreeNode = CType(e.Node, myTreeNode)
  With currentnode
  .Nodes.Clear()
  FillTree(currentnode, mPidMember & "= " & CInt(.Value))
  End With
  End Sub

  4、实现数据与绑定控件的同步

  要实现两个方面的同步:

  1、 其它绑定控件(如textbox等)应与TreeView当前结点所指向的记录位置一致。

Private Sub dbTreeView_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles MyBase.AfterSelect

 If e.Node Is Nothing Then Exit Sub
  '定位到position
  cm.Position = GetPosition(CType(e.Node, myTreeNode).Value)
  If AllowEdit Then
  oldNode = e.Node
  oldPos = cm.Position
  End If
  End Sub

  2、在其它绑定控件改变了数据源后,更新树结点,这个工作在触发CurrencyManager的PositionChanged事件时进行。

Public Sub cm_PositionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
  If CType(Me.SelectedNode, myTreeNode).Value <> GetValue(cm.Position) Then
  Debug.WriteLine("Current node isn't correct point to currencymanager.position!")
  Me.SelectedNode = FindNodeByValue(GetValue(cm.Position), Me.Nodes)
  End If
  If AllowEdit Then
  If Me.SelectedNode Is Nothing AndAlso cm.Position = cm.Count - 1 Then
  '当新增记录时,新增树结点
  If CType(cm.Current, DataRowView).IsNew Then
  Me.SelectedNode = AddNode(cm.Position)
  Exit Sub
  End If
  End If
  If Not oldNode Is Nothing Then
  If CType(oldNode, myTreeNode).Value = GetValue(oldPos) Then
  '更新老结点
  oldNode.Text = GetDisplay(oldPos)
  Else
  End If
  End If
  End If
  End Sub


  使用dbTreeView

  程序运行后界面如下:


VB.NET绑定TreeView很方便的实现了多层次绑定的问题了吧 b2b软件

  相关代码请参见源程序,这里不做详述,

需要注意的是删除操作并没有删除子结点,只是删除当前结点而已,删除子结点的工作应该在存储过程中递归实现,而不应放在前端。



unto弄乱了数据没有关系VB.NET自动启动初始化设备next群发企汇网自动信息发布软件脚本
回复

使用道具 举报

0

主题

1025

帖子

1027

积分

积分
1027
信息发布软件沙发
发表于 2017-5-30 09:09:10 | 只看该作者
值得好评,赞一个!!!

回复 支持 反对

使用道具 举报

0

主题

594

帖子

576

积分

积分
576
推广工具板凳
发表于 2017-6-1 09:31:18 | 只看该作者
的很满意,都是高清图片效果非常好,虽然开始我着急闹的有点不愉快,后面他们的经理芬芬同志很好帮我解决了,还有

回复 支持 反对

使用道具 举报

0

主题

583

帖子

575

积分

积分
575
软件定制开发地板
发表于 2017-6-6 14:44:45 | 只看该作者
!设计人员专业!来回改动无数次,都全力配合更改!

回复 支持 反对

使用道具 举报

0

主题

630

帖子

651

积分

积分
651
5#定制软件#
发表于 2017-6-15 08:17:46 | 只看该作者
,设计非常符合我的初衷。售后服务非常不错,这个我很放心,而且首页设计的比我原先的店铺好很多很多,真的是很满意的。全5分,极力推荐。

回复 支持 反对

使用道具 举报

0

主题

591

帖子

576

积分

积分
576
6#定制软件#
发表于 2017-6-15 21:27:03 | 只看该作者
,以客户要求为核心的店很少,废话不说了,总之很满意感谢!

回复 支持 反对

使用道具 举报

1

主题

608

帖子

594

积分

积分
594
7#定制软件#
发表于 2017-6-19 10:20:28 | 只看该作者
的很不错,提出表扬。还有三号。

回复 支持 反对

使用道具 举报

0

主题

2180

帖子

564

积分

积分
564
8#定制软件#
发表于 2017-6-20 07:08:15 | 只看该作者
了,服务很周到,及时,相信你们会越来越好,加油!!

回复 支持 反对

使用道具 举报

0

主题

602

帖子

594

积分

积分
594
9#定制软件#
发表于 2017-6-21 21:37:19 | 只看该作者
错的购物,客服很细心、热情,对我提的所有问题都耐心回答,一步一步教我操作,让我们能够很顺利地完成这次购物。售后培训也很耐心,以后还会来的。

回复 支持 反对

使用道具 举报

0

主题

594

帖子

576

积分

积分
576
10#定制软件#
发表于 2017-6-22 05:54:52 | 只看该作者
,清晰度也很合适。太划算啦

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
群发软件安卓手机config配置演示实列
安卓手机config配置演示实列
群发软件苹果脚本配置config小实例
苹果脚本配置config小实例 https://www.yuque.com/aiwork/dcvhmb/qolobpysdg0hvi2e
群发软件苹果脚本矩形类rect小实例
苹果脚本矩形类rect小实例
群发软件AIWROK安卓苹果平台设计的实用工具库
AIWROK安卓苹果平台设计的实用工具库
群发软件AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示
群发软件苹果脚本实例1项目project应用示例
苹果脚本实例1项目project应用示例
群发软件苹果脚本实例1剪贴板功能集成
苹果脚本实例1剪贴板功能集成
群发软件苹果iOS脚本Detect类系统性使用示例
苹果iOS脚本Detect类系统性使用示例
群发软件AIWROK苹果系统打印H5界面日志输出
AIWROK苹果系统打印H5界面日志输出
群发软件H5案例自动化看广告撸金币系统
H5案例自动化看广告撸金币系统
群发软件AIWROK苹果脚本H5任务执行小例子
AIWROK苹果脚本H5任务执行小例子
群发软件AIWROK软件苹果水平容器[Horizontal]小实例
AIWROK软件苹果水平容器[Horizontal]小实例
群发软件AIWROK苹果脚本实例1界面UI输入框类[Input]
AIWROK苹果脚本实例1界面UI输入框类
群发软件AIWROK软件苹果脚本案例1空白站位[Space]方法
AIWROK软件苹果脚本案例1空白站位[Space]方法
群发软件AIWROK软件苹查系统复选框用法
AIWROK软件苹查系统复选框用法
群发软件苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
群发软件AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
群发软件IOS苹果脚本View的完整功能实例
IOS苹果脚本View的完整功能实例
群发软件AIWROK苹果系统实例演示1标签类[Label]方法
AIWROK苹果系统实例演示1标签类[Label]方法
信息发布软件AIWROK软件苹果UI按钮Button方法示例
AIWROK软件苹果UI按钮Button方法示例
信息发布软件AIWROK软件苹果TAB界面视图示例
AIWROK软件苹果TAB界面视图示例
信息发布软件AIWROK苹果系统自带view视图简洁UI界面示例
AIWROK苹果系统自带view视图简洁UI界面示例
信息发布软件汇集HID安卓输入文字的方法和复制粘贴示例
汇集HID安卓输入文字的方法和复制粘贴示例
信息发布软件AIWROK软件找字与OCR方法汇总示例
AIWROK软件找字与OCR方法汇总示例
信息发布软件AIWROK软件找图方法汇总示例
AIWROK软件找图方法汇总示例
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子
信息发布软件AIWROK软件Zip 高级操作复杂示例
AIWROK软件Zip 高级操作复杂示例
信息发布软件AIWROK软件txt_文件读写方法小结
AIWROK软件txt_文件读写方法小结

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-3-21 05:19 , Processed in 0.490029 second(s), 55 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表