none
TreeView進階使用方法 RRS feed

  • 問題

  • 各位大大,不曉得有沒有人將TreeView元件做的跟安裝時選擇的那個畫面一樣?(可以針對要安裝主項目內的細項做選擇,也可以勾選主項目之後,內含的所有細項皆選取)

    TreeView的CheckBox選項設為True之後是全部都有這個CheckBox耶~對這些CheckBox要怎樣控制,不曉得有沒有大大有這樣的應用方式?

    2008年12月26日 上午 06:54

解答

所有回覆

  • 我之前做的時候是當點選上層的節點的話自動去把下層的勾完;而如果你層數多的話用遞迴的方式程式碼會比較簡短;下面是個簡單的範例

     

    Code Snippet

    Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck

            ''當點選在母節點的時候自動將所有子節點一並勾選

            If e.Node.Parent Is Nothing Then

                ''點選的項目為母節點時的處理

                If e.Node.Checked Then

                    For x As Integer = 0 To e.Node.Nodes.Count - 1

                        e.Node.Nodes(x).Checked = True

                    Next

                Else

                    For x As Integer = 0 To e.Node.Nodes.Count - 1

                        e.Node.Nodes(x).Checked = False

                    Next

                End If

            Else

                '’

            End If

        End Sub

     

     

    2008年12月26日 上午 07:39
    版主
  • bauann大大,感謝你~

    不知道要怎樣才能將其中的節點給反灰(Disable),不知道可不可以做到這樣的功能.

    大大,不知道是否還有其他的範例可以參考~

    2008年12月26日 上午 07:47
  • Hi,

    根據預設Treeview沒有enable相關功能,不過可以利用改變Nodes的backcolor以及BeforeCheck事件來做這樣的功能;但是在Vista上似乎會有問題(我還沒有驗證),XP跟Server 2003是正常,你可以自行驗證看看。

     

    相關參考連結

    How to disable treeview node for good

    http://social.msdn.microsoft.com/forums/en-US/winforms/thread/d0e6c8ea-8de8-4ef2-8f4f-6475373c9aac/

     

    2008年12月26日 上午 09:14
    版主
  • 感謝大大~

    2008年12月26日 上午 10:03