我有一個樹形圖,當用戶與單個節點交互時,顏色會改變。代碼是:使用C設置TreeView ForeColor#
treeview.selectednode.forecolor = color.red;
當用戶按下一個按鈕時,我希望整個節點組例如變爲黑色。所以我編碼如下:
treeview.forecolor = color.black;
它工作正常,除了我以前已更改爲紅色的節點。有沒有辦法解決這個問題?
我有一個樹形圖,當用戶與單個節點交互時,顏色會改變。代碼是:使用C設置TreeView ForeColor#
treeview.selectednode.forecolor = color.red;
當用戶按下一個按鈕時,我希望整個節點組例如變爲黑色。所以我編碼如下:
treeview.forecolor = color.black;
它工作正常,除了我以前已更改爲紅色的節點。有沒有辦法解決這個問題?
使用該遞歸函數:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
(sender as TreeView).SelectedNode.ForeColor = Color.Red;
}
private void button1_Click(object sender, EventArgs e)
{
foreach (TreeNode tn in treeView1.Nodes)
{
tn.ForeColor = Color.Blue;
ColorNodes(tn);
}
}
private void ColorNodes(TreeNode t)
{
foreach (TreeNode tn in t.Nodes)
{
tn.ForeColor = Color.Blue;
ColorNodes(tn);
}
}
謝謝 - 沒想到,但如果我有一個有幾百或幾千個節點的Treeview,這個規模有多高效?再次感謝。 – 2010-11-11 15:31:44
最受歡迎的,它的每個節點處理一次,所以它的效率非常高。 – Genius 2010-11-11 15:33:35
我想我會這樣做,但是是異步的。 – 2010-11-11 16:00:26
保持之前選擇的節點的引用,把它變成黑色的,只要更改樹狀黑色。
Can這樣做.....有些情況下,樹視圖加載了紅色節點。不管怎麼說,還是要謝謝你。 – 2010-11-11 15:59:54
這是否真的編譯?該屬性的名稱是* [ForeColor](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.forecolor.aspx)*,而不是* forecolor *。此外,它應該是* [Color.Black](http://msdn.microsoft.com/en-us/library/system.drawing.color.black.aspx)*,而不是* color.black *。 – 2013-09-30 13:24:15