[VB.NET][C#.NET] 如何使用 Control.Tag

[VB.NET][C#.NET] 如何使用 Control.Tag

1.我們可以用Control.Tag屬性來暫存資料(Object),這看來就很迷人,Object表示可以把東西擺的很豐富。

2.Control.Tag屬性,預設值:C#為 Null,Visual Basic 為 Nothing。

3.用Control.Tag屬性可以減少變數的命名,充份的利用控制項提供的資源。

4.Tag 屬性的常見用途是儲存與控制項緊密關聯的資料。例如,如果您有一個顯示客戶相關資訊的控制項,您可以將包含客戶訂單記錄的 DataSet 儲存在該控制項的 Tag 屬性中,以便快速存取資料。

5.範例下載:

CS_TreeView for tag.rar

VB_TreeView for tag.rar

用上一篇的[C#.NET][VB.NET] 如何 列舉 Registry / 使用 treeView 實作延續說明

以下範例由蹂躝提供指導。

1.加入根目錄,並將Registry類別帶入SubNode1.Tag


RootNode.Nodes.Add(SubNode1)
SubNode1.Tag = Registry.ClassesRoot

2009-7-31 下午 11-30-42

2.當展開第一層節點,觸發treeView1_BeforeExpand事件,呼叫器AddSubRegKey方法,觀察傳入TreeNode的Tag屬性。

2009-7-31 下午 01-27-51

在第一個節點我們已經用下列語句傳入,所以我們用node.Tag判斷資料是否為空。

SubNode1.Tag = Registry.ClassesRoot
SubNode2.Tag = Registry.CurrentUser
SubNode3.Tag = Registry.LocalMachine
SubNode4.Tag = Registry.Users
SubNode5.Tag = Registry.CurrentUser

2009-7-31 下午 11-27-16

 

3.當展開第二層節點時,觸發treeView1_BeforeExpand事件,呼叫器AddSubRegKey方法,觀察傳入TreeNode的Tag屬性。

2009-7-31 下午 01-52-14

因為還沒定義訂二層節點的Tag所以是空的

2009-7-31 下午 11-33-12

利用node.Parent.Tag屬性取得節點的 Registry 類型。

2009-7-31 下午 11-33-56

以此類推,當展開第三層節點時

2009-7-31 下午 11-35-41

4.在資料夾單擊左鍵,就會觸發treeView1_AfterSelect事件,我們可以發現我們選擇的Node已經有RegistryKey。

2009-7-31 下午 11-41-23

PS.這篇比起上一篇[C#.NET][VB.NET] 如何 列舉 Registry / 使用 treeView 實作少了一個判斷字串的GetRegKey方法。

再此感謝熱心的蹂躝

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo