精華區beta Visual_Basic 關於我們 聯絡資訊
我是新手 照著vb書上寫出樹狀元件的介面 但是 書上只有教如何display出樹狀元件中的樹枝名稱 卻沒有教傳值的功能 想問若是利用click的屬性來傳值的程式碼該怎麼寫 or有網頁的教學 謝謝唷 ex. Dim nodX As Node Set nodX = TreeView1.Nodes.Add(, , "I", "我") Set nodX = TreeView1.Nodes.Add("I", tvwChild, "love", "愛") Set nodX = TreeView1.Nodes.Add("love", tvwChild, "you", "你") 介面會變成 -我 |-愛 |-你 用滑鼠按下 我的話 那麼要怎麼傳"我"or"I"的值呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.211.12 ※ 編輯: Jung2 來自: 140.114.211.12 (05/04 01:58)
fumizuki:何謂傳值 61.222.155.162 05/04
Jung2:就是怎麼按下"我"或"愛" 怎知我按下哪一個nodename 140.114.54.105 05/04
> -------------------------------------------------------------------------- < 作者: fumizuki (小獅) 看板: Visual_Basic 標題: Re: [請益] VB 樹狀結構元件的傳值問題 時間: Wed May 4 09:36:44 2005 Private Sub TreeView1_Expand(ByVal Node As ComctlLib.Node) MsgBox Node.Text End Sub 你是要這個嗎? -- VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法 ====================================================== Visual_Basic MaiKuraki Stephen Array -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.155.162 > -------------------------------------------------------------------------- < 作者: Jung2 (我是孤傲的薔薇) 看板: Visual_Basic 標題: Re: [請益] VB 樹狀結構元件的傳值問題 時間: Wed May 4 20:34:38 2005 ※ 引述《fumizuki (小獅)》之銘言: : Private Sub TreeView1_Expand(ByVal Node As ComctlLib.Node) : MsgBox Node.Text : End Sub : 你是要這個嗎? 我試過這個 好像可以傳出樹狀節點的字串 但是我不知道Expand是指什麼屬性? 可以怎麼利用阿? 若是我是要按下樹枝節點 並能傳出我按下節點的字串值 是不是要用 MsgBox Treeview1.SelectedItem 我想呈現的 就像Windows的檔案總管一樣 按下去不同的節點 另一個視窗會跟著改變 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.54.105 ※ 編輯: Jung2 來自: 140.114.54.105 (05/04 20:35) > -------------------------------------------------------------------------- < 作者: fumizuki (小獅) 看板: Visual_Basic 標題: Re: [請益] VB 樹狀結構元件的傳值問題 時間: Wed May 4 22:07:08 2005 ※ 引述《Jung2 (我是孤傲的薔薇)》之銘言: : ※ 引述《fumizuki (小獅)》之銘言: : : Private Sub TreeView1_Expand(ByVal Node As ComctlLib.Node) : : MsgBox Node.Text : : End Sub : : 你是要這個嗎? : 我試過這個 好像可以傳出樹狀節點的字串 : 但是我不知道Expand是指什麼屬性? 那不是屬性 是事件... : 可以怎麼利用阿? : 若是我是要按下樹枝節點 並能傳出我按下節點的字串值 : 是不是要用 : MsgBox Treeview1.SelectedItem 不是 : 我想呈現的 : 就像Windows的檔案總管一樣 按下去不同的節點 另一個視窗會跟著改變 看你要顯示的是什麼東西... 例如檔案總管 點下treeview會觸發expand事件 在expand事件中取得該目錄下所有檔案的列表,顯示在右邊控制項中(listview) listview我不太會用,它還要指定圖示等一堆繁鎖的動作... 範例:(假設左邊擺treeview,右邊擺list) Private Sub Form_Load() Dim nodX As Node Set nodX = TreeView1.Nodes.Add(, , "程式語言", "程式語言") Set nodX = TreeView1.Nodes.Add("程式語言", tvwChild, "VB", "Visual Basic") Set nodX = TreeView1.Nodes.Add("程式語言", tvwChild, "VC", "Visual C++") End Sub Private Sub TreeView1_Expand(ByVal Node As ComctlLib.Node) If Node.Key = "程式語言" Then List1.Clear List1.AddItem "VB" List1.AddItem "VC" ElseIf Node.Key = "VB" Then List1.Clear List1.AddItem "屬性" List1.AddItem "事件" List1.AddItem "方法" ElseIf Node.Key = "VC" Then List1.Clear List1.AddItem "屬性" List1.AddItem "事件" List1.AddItem "方法" List1.AddItem "MFC" End If End Sub 除了透過 Key 來判斷展開的是哪一個項目外,亦可使用 FullPath 來判斷。 Expand 事件中傳回的 Node 物件即代表被點下的那一個項目 (TreeView1.SelectedItem) 也就是說 TreeView1.SelectedItem ≒ Node TreeView1.SelectedItem.Key = Node.Key 但 Node 只能在 Expand 事件中使用。 -- VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法 ====================================================== Visual_Basic MaiKuraki Stephen Array -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.156.43
Jung2:先謝 我先試一下 我是初學者 ^^ 140.114.211.12 05/06