客服QQ:250304218 9459803 维修网站群:中华维修网 | 维修资料下载 | 中华维修论坛
新闻资讯 网络学院 电脑维修 办公维修 家电维修 维修视频 维修资料 中维商城 维修论坛
业界硬件办公家电数码
操作系统安全技术软件应用媒体动画图形图像办公系列网络应用
维修基础软件专题CPU/内存故障硬盘专栏显示器鼠标键盘电源/主板故障声卡显卡光储设备网络设备笔记本
导购DIY专区硒鼓加粉打印机复印机传真机 扫描仪一体机
电视维修影音设备家电常识综合电器
  您现在的位置: 中华维修网 >> 网络学院 >> 程序设计 >> 正文
VB.NET中层次数据绑定TreeView的实现
作者:佚名 文章来源:本站原创 点击数: 更新时间:2006-12-14 10:18:54

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

  程序运行后界面如下:

相关代码请参见源程序,这里不做详述,需要注意的是删除操作并没有删除子结点,只是删除当前结点而已,删除子结点的工作应该在存储过程中递归实现,而不应放在前端。

上一页  [1] [2] 

 主板维修教材  笔记本维修视频教程  硬盘维修视频教程  芯片级焊接教学视频   电路基础教程   维修工具 
文章录入:91xiukf    责任编辑:91xiu客服 
【字体:
最近更新
· ASP错误代码说明
· ASP错误代码说明
· 关于Adodb.Stream 的使用说明
· 关于Adodb.Stream 的使用说明
· 解决IIS5 HTTP500内部错误
· asp控制xml数据库的6段非常的经典代码
· ASP技术与PHP,CGI,JSP等技术的比较
· 用ASP制作饼图、柱状图等
· FlashMX新特性详解(四)学习资源和软件
· 导入电影的控制
推荐文章
· Windows XP系统被远程入侵
· 在网吧QQ密码被盗
· 浏览一些网页后硬盘被完全共享
· 共享文件后经常死机
· IE无法打开网页
· 病毒导致鼠标不能正常工作
· 病毒导致花屏
· 在Java中获取系统属性
· JAVA MSN机器人主要代码开放
· 计算机等级考试三级网络技术复习提纲
关于中维 | 联系方法 | 付款方式 | 广告服务 | 加入我们 | 帮助中心 | 网站地图 | 友情合作 | 加入收藏 | 设为首页
Copyright (C) 1999-2006 91Xiu.Com, All Rights Reserved 版权所有 中华维修网
全国统一客服热线: 400-658-3058 未开通400地区请拨打0536-3289280 13306362398
客服QQ:250304218 9459803 
 
青州众维科技 版权所有    鲁ICP备05001127号