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

實例分析VB.NET Treeview結構

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

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

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

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

  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. '載入根節點表至treeview中,作為第一級  
  9. myconnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;
  10. Data Source=" & Application.StartupPath & "\project.mdb"   
  11. '數據庫連接請自行更換  
  12. mycommand.CommandText = "SELECT 根節點編號,根節點名稱 FROM 根節點" 
  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. '樹上顯示的是根節點名稱  
  25. '請根據你數據庫字段的類型來決定是否用getstring或其它類型  
  26. TreeView1.Nodes.Add(tree_root)  
  27. End While  
  28. Catch ex As Exception  
  29. MessageBox.Show(ex.ToString, "數據表根節點載入錯誤", vbOKOnly)  
  30. Finally  
  31. myconnection.Close()  
  32. End Try  
  33. TreeView1.ExpandAll()  
  34. TreeView1.Select()  
  35. End Sub 

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

  1. Public Function NodeLevel(ByVal n As TreeNode) As Byte  
  2. '* 找出樹中當前節點的級數  
  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 

通過這個函數,就可以很方便地得到節點的級別?,F在我們可以放心地編寫節點選擇事件處理程序,以實現動態加載各級節點的子節點。

  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 第一級子節點編號,第一級子節點名稱 
    from 第一級子節點 where 根節點編號 ='"
     & e.Node.Tag & "'"  
  6. fill_treeleaf()  
  7. End If  
  8. Case "2"  
  9. If e.Node.GetNodeCount(False) = 0 Then  
  10. mycommand.CommandText = "select 第二級子節點編號,第二級子節點名稱 
    from 第二級子節點 where 第一級子節點編號 ='"
     & 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局部靜態變量
  3. 原理分析VB.NET開發控件
  4. 自己動手用代碼實現VB.NET ListView加載數據
  5. 詳細介紹VB.NET MyClass
責任編輯:佚名 來源: 新浪博客
相關推薦

2009-10-13 15:09:19

VB.NET使用Tre

2009-10-28 10:04:53

VB.NET XmlW

2010-01-19 18:24:29

VB.NET調用Win

2009-11-02 17:12:01

VB和VB.NET

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-13 09:24:57

VB.NET Dock

2009-10-15 10:57:16

VB.NET Text

2009-10-29 15:16:02

VB.NET文件傳送

2009-10-12 13:11:48

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開發控件

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技術棧公眾號

主站蜘蛛池模板: 一区二区三区国产 | 日韩视频专区 | 精品久久久久久久 | 日韩免 | 51ⅴ精品国产91久久久久久 | 国产美女在线观看 | 亚洲激情在线视频 | 亚洲在线中文字幕 | 亚洲一二三区av | 香蕉视频黄色 | 在线观看免费av片 | 国产精品大全 | 免费的日批视频 | 天天操网 | 日韩精品一区二区三区在线播放 | 欧美精品久久久久久久久久 | 国产精品视频入口 | 国产精品久久久久一区二区三区 | 国产99热在线 | 丝袜美腿一区二区三区动态图 | 久久久久国产一区二区三区四区 | 精品区一区二区 | 成人精品一区二区 | 国产精品久久久久久久久久免费看 | 久久精品免费观看 | 国产精品区二区三区日本 | 91色视频在线观看 | 激情网站在线观看 | av片毛片 | 激情av | 色偷偷噜噜噜亚洲男人 | 97视频人人澡人人爽 | 欧美视频三级 | 欧美成人高清视频 | 久久无毛 | 中文无吗| 欧美一级久久 | 欧美激情一区 | 美女福利网站 | 午夜一级大片 | 亚洲成人中文字幕 |