天天看點

WinForm開發中針對TreeView控件改變目前選擇節點的字型與顔色

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,如需轉載請自行聯系原作者

繼續閱讀