WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html

在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);
            }
        }

效果如下:

如上图所示,我们当前选择的节点是“所有分类”下的“地区”,字体颜色改了,当其失去焦点后我们同样可以很清楚的知道当前选择的分类。

时间: 2024-10-10 23:24:53

WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色的相关文章

在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储

在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如OutLook里面就有日历的模块,但是这个日程控件真的是很复杂的一个控件,需要全面掌握可能需要花费很多的时间去了解,由于是技术研究,我总是希望把它常用的功能剖析的更加彻底一些,前面随笔也介绍了它的存储功能,把它基于实体类的方式存储在数据库里面,不过介绍的还不够,本文继续上面的内容,进行数据存储方面的介绍. 在

C# TreeView控件 展开指定子节点的所有父节点

通常,我们需要的功能更多的是通过展开某一个父节点同时展开所有的子节点(即:联动),但是有时候我们也需要展开某一个节点之上的所有父节点,直到当前节点,例如在删除某一个节点时,不想删除之后所有节点有折叠,这时候就需要这种功能.这样说可能不好理解,也可能是本人语言表达能力欠佳,我们来看一个图: 通常我们都是点击根节点"1"展开所有的节点,如上.但是现在我们要删除节点"11111",删除之后是自动展开到"1111",即: 注意两个图是不一样的. 如何实现

在工作表左侧中添加TreeView控件

开发环境基于VSTO:visual studio 2010,VB .Net,excel 2007,文档级别的定制程序. 需求是在sheet的左侧停靠System.Windows.Forms.TreeView控件,实现类似资源浏览器的效果,另外,tree节点使用自定义的图标,支持复选框. 首先准备好树节点的图标,使用visual studio 2010自带的图标可以省去很多麻烦(在安装目录\Common7\VS2010ImageLibrary).我挑选了4个16x16大小的图标拷贝到vsto工程下

Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制

做这个功能是因为开发项目的时候,由于后台接口的一些参数的值的长度有要求,不能超过多少个字符,所以在编辑框中输入的字符是要有限制的. 下面就来看一下demo的实现过程: 首先,在xml控件中放置一个EditText控件,然后初始化该控件并对该控件添加文本监听.xml自己简单的设计一下,代码较为简单,直接上代码: package com.example.edittext; import android.app.Activity; import android.os.Bundle; import an

C# Winform 快速点击TreeView控件的CheckBox导致显示不同步

此为TreeView控件的BUG,快速点击时触发了双击事件,需要新建一个类重写TreeView控件 参考 https://my.oschina.net/Tsybius2014/blog/551358 博主:北风其凉

C# TreeView控件 父节点子节点勾选变化关联

项目用到了TreeView控件,父节点子节点勾选需要关联.子节点勾选,父节点同步.父节点勾选,所有子节点都勾选,并递归.网上找了一圈,好多代码都不满足要求.节点勾选,向下递归子节点,都实现了.节点勾选,向上递归,父节点同步勾选,也实现了.但是节点去除勾选,应该判断其同级所有节点,若同级节点都处于未勾选状态,则应该去除父节点勾选状态,并向上递归.这一点,没有找到合适的代码.就自己写了这部分代码.仅仅只是实现这个效果,代码还有优化的空间,后续有时间再来修改了. private void treeVi

在Winform开发中使用日程控件XtraScheduler

在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了DevExpress的日程控件XtraScheduler了,这个控件功能非常强大,提供了很好的界面展现方式,以及很多的事件.属性给我们定制修改,能很好满足我们的日程计划安排的需求,本文全面分析并使用这个控件,希望把其中的经验与大家分享. 1.日程控件的表现效果 整个日程控件,可以分为日视图.周视图.月视图等等,当然还有一些不常用的时间线.甘特图等,本例我们来关注控件的使用以及这几个视图的处理.先来看看他们的界面

C# WinForm程序中使用Unity3D控件 (转)

https://www.cnblogs.com/cnxkey/articles/5394378.html 最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过发现游戏的UI和业务系统的UI还是有一定的差别,很多的用户还是比较习惯WinForm或者WPF中的UI形式,于是在网上搜了一下WinForm和Unity3D如何集成,结果不是非常令人满意,绝大多数的回答是“No Way”,也有人给出了使用WebBrowser控件的形式,说实话这种还算是比较靠谱的,以

牛腩新闻发布系统———如何在开发中使用第三方控件

开发的项目多了以后,很多时候系统自带控件根本不能满足我们的需要,所以有时候就需要我们使用第三方控件来让我们的系统更加Perfect! 下面 ,我记录一下牛腩是如何添加第三方控件的 比如我们要使用 FreeTextBox控件 第一步:先把第三方控件(某个DLL或者其他文件)下载下来 第二步:然后添加对该文件的引用(右击自己的启动项目-添加–引用) 第三步:看到VS左边的工具箱了吗,在空白处右击选择 选择项 第四步:然后会看到如下界面,在单击 浏览,找到自己要添加的第三方控件,确定. 第五步:依次单