[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.範例下載:
用上一篇的[C#.NET][VB.NET] 如何 列舉 Registry / 使用 treeView 實作延續說明
以下範例由蹂躝提供指導。
1.加入根目錄,並將Registry類別帶入SubNode1.Tag
RootNode.Nodes.Add(SubNode1)
SubNode1.Tag = Registry.ClassesRoot
2.當展開第一層節點,觸發treeView1_BeforeExpand事件,呼叫器AddSubRegKey方法,觀察傳入TreeNode的Tag屬性。
在第一個節點我們已經用下列語句傳入,所以我們用node.Tag判斷資料是否為空。
SubNode1.Tag = Registry.ClassesRoot
SubNode2.Tag = Registry.CurrentUser
SubNode3.Tag = Registry.LocalMachine
SubNode4.Tag = Registry.Users
SubNode5.Tag = Registry.CurrentUser
3.當展開第二層節點時,觸發treeView1_BeforeExpand事件,呼叫器AddSubRegKey方法,觀察傳入TreeNode的Tag屬性。
因為還沒定義訂二層節點的Tag所以是空的
利用node.Parent.Tag屬性取得節點的 Registry 類型。
以此類推,當展開第三層節點時
4.在資料夾單擊左鍵,就會觸發treeView1_AfterSelect事件,我們可以發現我們選擇的Node已經有RegistryKey。
PS.這篇比起上一篇[C#.NET][VB.NET] 如何 列舉 Registry / 使用 treeView 實作少了一個判斷字串的GetRegKey方法。
再此感謝熱心的蹂躝
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET