av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

實(shí)例分析VB.NETTreeview結(jié)構(gòu)

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

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、奉賢網(wǎng)站維護(hù)、網(wǎng)站推廣。

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

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

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

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

 
 
 
  1. Public Function NodeLevel(ByVal n As TreeNode) As Byte
  2. '* 找出樹中當(dāng)前節(jié)點(diǎn)的級數(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é)點(diǎn)的級別?,F(xiàn)在我們可以放心地編寫節(jié)點(diǎn)選擇事件處理程序,以實(shí)現(xiàn)動態(tài)加載各級節(jié)點(diǎn)的子節(jié)點(diǎn)。

 
 
 
  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é)點(diǎn)編號,第一級子節(jié)點(diǎn)名稱 
    from 第一級子節(jié)點(diǎn) where 根節(jié)點(diǎn)編號 ='" & 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é)點(diǎn)編號,第二級子節(jié)點(diǎn)名稱 
    from 第二級子節(jié)點(diǎn) where 第一級子節(jié)點(diǎn)編號 ='" & 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

網(wǎng)站題目:實(shí)例分析VB.NETTreeview結(jié)構(gòu)
本文URL:http://uogjgqi.cn/article/djspeog.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流