成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實例分析VB.NET Treeview結構

開發(fā) 后端
這里介紹VB.NET Treeview結構,Treeview是由節(jié)點TreeNode組成的,第一級的稱之為根節(jié)點TreeRoot,在根節(jié)點之下一級的稱之為某個根節(jié)點的子節(jié)點TreeLeaf,某個子節(jié)點之下一級的子節(jié)點就稱為該子節(jié)點的子節(jié)點。

本人很喜歡VB.NET,在工作中也很喜歡總結關于VB.NET Treeview結構的經(jīng)驗教訓,我們簡單分析一下VB.NET Treeview結構(筆者準備在另文專門剖析一下VB.NET Treeview結構,以方便有興趣的網(wǎng)友進行高級應用)

Treeview是由節(jié)點TreeNode組成的,第一級的稱之為根節(jié)點TreeRoot,在根節(jié)點之下一級的稱之為某個根節(jié)點的子節(jié)點TreeLeaf,某個子節(jié)點之下一級的子節(jié)點就稱為該子節(jié)點的子節(jié)點。第個節(jié)點有兩個標識方式,一個是它的Text,即顯示出來的內(nèi)容;另一個是它的Tag屬性,一般用唯一標識碼對其進行標識,以用于在使用時對節(jié)點的識別。在本文中,也主要用Text屬性來顯示節(jié)點的名稱字段,用Tag屬性來顯示節(jié)點的編號屬性。(節(jié)點編號被設為主鍵,也就是唯一的標識了)

1.加載根節(jié)點
好了,我們該開始在VB.NET中進行演練了!第一步,當然是看看怎么在窗體起始的時候加載根節(jié)點:

  1. '定義公用變量  
  2. Dim myconnection As New OleDb.OleDbConnection()  
  3. Dim MyAdapater As New OleDb.OleDbDataAdapter()  
  4. Dim mycommand As New OleDb.OleDbCommand()  
  5. Dim ds As New DataSet()  
  6.  
  7. Private Sub Form1_Load(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) Handles MyBase.Load  
  8. '載入根節(jié)點表至treeview中,作為第一級  
  9. myconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  10. Data Source=" & Application.StartupPath & "\project.mdb"   
  11. '數(shù)據(jù)庫連接請自行更換  
  12. mycommand.CommandText = "SELECT 根節(jié)點編號,根節(jié)點名稱 FROM 根節(jié)點" 
  13. mycommand.Connection = myconnection 
  14. Try  
  15. myconnection.Close()  
  16. myconnection.Open()  
  17. Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader  
  18. TreeView1.Nodes.Clear()  
  19. While mysqlreader.Read()  
  20. Dim tree_root As New TreeNode()  
  21. tree_root.Tag = mysqlreader.GetString(0) 
  22. '把編號放入tag中  
  23. tree_root.Text = mysqlreader.GetString(1) 
  24. '樹上顯示的是根節(jié)點名稱  
  25. '請根據(jù)你數(shù)據(jù)庫字段的類型來決定是否用getstring或其它類型  
  26. TreeView1.Nodes.Add(tree_root)  
  27. End While  
  28. Catch ex As Exception  
  29. MessageBox.Show(ex.ToString, "數(shù)據(jù)表根節(jié)點載入錯誤", vbOKOnly)  
  30. Finally  
  31. myconnection.Close()  
  32. End Try  
  33. TreeView1.ExpandAll()  
  34. TreeView1.Select()  
  35. End Sub 

2.點擊時加入子節(jié)點
對TreeView的點擊,對于TreeView控件本身,并沒有為哪一個級別的Node編寫點擊(選擇)事件處理程序,而是把所有節(jié)點的點擊事件都寫入了一個AfterSelect事件中。因此,在編寫點擊加入子節(jié)點的程序之前,我們還必須編寫一個查找點擊的節(jié)點是哪一級節(jié)點的方法。

  1. Public Function NodeLevel(ByVal n As TreeNode) As Byte  
  2. '* 找出樹中當前節(jié)點的級數(shù)  
  3. Dim i As Byte = 1 
  4. Dim m As String  
  5. Do Until n.Parent Is Nothing  
  6. nn = n.Parent  
  7. i += 1  
  8. Loop  
  9. Return i  
  10. End Function 

通過這個函數(shù),就可以很方便地得到節(jié)點的級別。現(xiàn)在我們可以放心地編寫節(jié)點選擇事件處理程序,以實現(xiàn)動態(tài)加載各級節(jié)點的子節(jié)點。

  1. Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, 
    ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect  
  2. Select Case NodeLevel(e.Node).ToString  
  3. Case "1"  
  4. If e.Node.GetNodeCount(False) = 0 Then  
  5. mycommand.CommandText = "select 第一級子節(jié)點編號,第一級子節(jié)點名稱 
    from 第一級子節(jié)點 where 根節(jié)點編號 ='"
     & e.Node.Tag & "'"  
  6. fill_treeleaf()  
  7. End If  
  8. Case "2"  
  9. If e.Node.GetNodeCount(False) = 0 Then  
  10. mycommand.CommandText = "select 第二級子節(jié)點編號,第二級子節(jié)點名稱 
    from 第二級子節(jié)點 where 第一級子節(jié)點編號 ='"
     & e.Node.Tag & "'"  
  11. fill_treeleaf()  
  12. End If  
  13. End Select  
  14. End Sub  
  15. Public Sub fill_treeleaf()  
  16. mycommand.Connection = myconnection 
  17. Try  
  18. myconnection.Open()  
  19. Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader  
  20. While mysqlreader.Read()  
  21. Dim tree_leaf As New TreeNode()  
  22. tree_leaf.Tag = mysqlreader.GetString(0)  
  23. tree_leaf.Text = mysqlreader.GetString(1)  
  24. TreeView1.SelectedNode.Nodes.Add(tree_leaf)  
  25. End While  
  26. Catch ex As Exception  
  27. MsgBox(ex.Message)  
  28. Finally  
  29. myconnection.Close()  
  30. End Try  
  31. End Sub 

【編輯推薦】

  1. 詳細分析VB.NET WithEvents
  2. 淺析VB.NET局部靜態(tài)變量
  3. 原理分析VB.NET開發(fā)控件
  4. 自己動手用代碼實現(xiàn)VB.NET ListView加載數(shù)據(jù)
  5. 詳細介紹VB.NET MyClass
責任編輯:佚名 來源: 新浪博客
相關推薦

2009-10-13 15:09:19

VB.NET使用Tre

2009-10-28 10:04:53

VB.NET XmlW

2009-11-02 17:12:01

VB和VB.NET

2010-01-19 18:24:29

VB.NET調(diào)用Win

2009-10-28 14:13:32

VB.NET File

2009-11-10 17:31:38

VB.NET注冊表

2010-01-22 10:41:33

VB.NET聲明結構

2009-10-21 09:10:52

VB.NET壓縮

2009-11-04 10:54:53

VB.NET MOVE

2009-10-29 15:16:02

VB.NET文件傳送

2009-10-14 15:20:21

VB.NET窗體指針

2009-11-04 09:32:12

VB.NET Auto

2009-10-27 18:06:41

VB.NET開發(fā)控件

2009-10-12 13:11:48

VB.NET使用線程

2009-10-13 09:24:57

VB.NET Dock

2009-10-15 10:57:16

VB.NET Text

2009-10-22 09:20:46

VB.NET Proc

2009-10-21 09:40:23

VB.NET搜索

2009-10-09 17:40:38

VB.Net問題集

2010-01-15 15:39:14

VB.NET Sub過
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a黄视频| 欧美精品乱码99久久影院 | 欧美一级大片免费看 | 香蕉视频1024 | 成人av观看| 久久99视频免费观看 | 天天操综合网站 | 成人免费观看视频 | 99久久国产综合精品麻豆 | 精品一区二区三区免费视频 | 人人鲁人人莫人人爱精品 | 国产精品国产a级 | 亚洲久久一区 | a看片| 成人免费看片网 | 国内精品久久久久久 | 天天看天天爽 | 国产精成人 | 国产精品久久久久久久久久 | 精品国产一区二区三区久久久久久 | 国产精品久久久久久久久免费丝袜 | 一区二区精品 | 99在线国产| 亚洲国产精品va在线看黑人 | 亚洲欧美日韩精品久久亚洲区 | 亚洲国产片 | 免费一区二区三区在线视频 | 玩丰满女领导对白露脸hd | 久久乐国产精品 | 午夜精品一区二区三区在线观看 | 天天摸天天看 | 久久久精品一区 | 久亚州在线播放 | 日韩有码一区 | 日韩欧美一区二区三区 | 国产成人精品一区二区三区在线 | 久久久久久国产一区二区三区 | 久久亚洲精品国产精品紫薇 | 亚洲精品亚洲人成人网 | 伊人网在线看 | 久久久青草婷婷精品综合日韩 |