2012-10-26 69 views
0

我是c#的初學者。在我的項目中,我在TreeView控件中填充了一個xml文件。如果xml文件很大,則TreeView控件將顯示帶滾動條的數據。旁此,每當用戶雙擊一個節點我顯示所選擇的節點像這樣旁的面板..將面板附加到TreeView控件

enter image description here

當我滾動TreeView控件

enter image description here

我的問題是如何使panel附加到treeView控制,以便儘管用戶滾動TreeView控制面板也應該與選定的節點一起移動。

+0

這是一個html應用程序或winforms應用程序? – Heather

+0

WinForms..sorry我總是忘記保存標籤 –

+0

如何在選定節點前面顯示該面板? – yogi

回答

2

嗯,很難做,因爲TreeView沒有滾動事件。無論如何,這是不可靠的,因爲節點可以展開和摺疊,改變節點的位置和可視性。備份計劃是使用定時器。這工作得很好:

private void timer1_Tick(object sender, EventArgs e) { 
     var node = treeView1.SelectedNode; 
     if (node == null || !node.IsVisible) panel1.Visible = false; 
     else { 
      panel1.Visible = true; 
      var nodepos = treeView1.PointToScreen(node.Bounds.Location); 
      var panelpos = panel1.Parent.PointToClient(nodepos); 
      panel1.Top = panelpos.Y; 
     } 
    } 
+0

真的很不錯的技巧..我沒有想到這個:)。讓我試試.. –

+0

我即將發佈此鏈接,http://sourceforge.net/projects/treeviewadv/。但是,這應該完成工作而沒有任何複雜性。 –

+0

不幸的是它不工作。我粘貼你的代碼,因爲它應該我做任何改變? (不是控制名稱,我還添加了定時器控制) –