WinForm開發中針對TreeView控件改變目前選擇節點的字型與顔色
在B/S開發中,對TreeView控件要改變目前選中節點的顔色比較友善,其有相應的SelectedNodeChanged事件進行控制,但對于WinForm則沒有這樣友善。申明一下,我在這兒所說的改變目前節點的字型與顔色,主要是在WinForm中的TreeView控件,目前選中節點後,其失去滑鼠焦點後節點的字型與顔色失去了選中狀态,層級一多,我們就不知道目前選擇的是那個節點了。使用者體驗性稍微欠缺一些。其實實作方法非常簡單,主要用到TreeView的兩個事件,分别為:BeforeSelect與AfterSelect事件。代碼如下:
TreeNode theLastNode = null;//最後選擇的節點(用于還原節點狀态)
private void tvCustomerClass_AfterSelect(object sender, TreeViewEventArgs e)
{
if (this.tvCustomerClass.SelectedNode != null)
{
theLastNode = tvCustomerClass.SelectedNode;
}
}
private void tvCustomerClass_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Node.ForeColor = Color.Blue;
e.Node.NodeFont = new Font("宋體", 10, FontStyle.Underline|FontStyle.Bold);
if (theLastNode != null)
theLastNode.ForeColor = SystemColors.WindowText;
theLastNode.NodeFont = new Font("宋體", 11, FontStyle.Regular);
}
效果如下:
如上圖所示,我們目前選擇的節點是“所有分類”下的“地區”,字型顔色改了,當其失去焦點後我們同樣可以很清楚的知道目前選擇的分類。
本文轉自yonghu86 51CTO部落格,原文連結:http://blog.51cto.com/yonghu/1321318,如需轉載請自行聯系原作者