发现当treeview控件失去焦点的时候,会丢失选中状态的指示(条目的蓝色背景)。如果想要保持,只要设置treeview的一个属性即可:

this.treeView1.HideSelection = false;

但是,发现阴影很浅,但是聊胜于无。

在博客园上找到了“大气象学习园地”的一篇博文(链接),刚好说到这个事,他通过重写DrawMode()来控制选中节点颜色,把他的代码也贴上:

public FrmMain()
{InitializeComponent();treeView1.HideSelection = False;//自已绘制this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
}//在绘制节点事件中,按自已想的绘制
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{e.DrawDefault = true; //我这里用默认颜色即可,只需要在TreeView失去焦点时选中节点仍然突显return;if ((e.State & TreeNodeStates.Selected) != 0){//演示为绿底白字
        e.Graphics.FillRectangle(Brushes.DarkBlue, e.Node.Bounds);Font nodeFont = e.Node.NodeFont;if (nodeFont == null) nodeFont = ((TreeView)sender).Font;e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White,Rectangle.Inflate(e.Bounds, 2, 0));}else{e.DrawDefault = true;}if ((e.State & TreeNodeStates.Focused) != 0){using (Pen focusPen = new Pen(Color.Black)){focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;Rectangle focusBounds = e.Node.Bounds;focusBounds.Size = new Size(focusBounds.Width - 1,focusBounds.Height - 1);e.Graphics.DrawRectangle(focusPen, focusBounds);}}}

转载于:https://www.cnblogs.com/TrueElement/archive/2012/09/01/2666427.html

treeview 保持选中状态相关推荐

  1. (JavaScript)实现在客户端动态改变Treeview节点的选中状态

    Asp.net 2.0 中的 Treeview 非常好用,而且轻便.但在使用过程中,往往会发现一些不够人性化的地方. 例如您要设计一棵树,里面放置了一些收藏的网址.在这棵树中,节点的 SelectAc ...

  2. C# winform TreeView设置为选中状态(蓝底白字)

    今天碰到个很贱的问题,TreeView设置某节点为选中节点,但是就是不显示像鼠标点击选中的样式(蓝底白字). TreeView各种属性方法试验,发现在TreeView.SelectedNode之前,一 ...

  3. html中radio、checkbox选中状态研究(静下心来看,静下心来总结)

    html中radio.checkbox选中状态研究(静下心来看,静下心来总结) 一.总结 1.单选框的如果有多个checked 会以最后一个为准 2.js动态添加checked属性:不行:通过 $(& ...

  4. jQuery复选框选中状态更改事件

    本文翻译自:jQuery checkbox checked state changed event I want an event to fire client side when a checkbo ...

  5. 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )

    文章目录 一.打开 Linux 内核编译 菜单配置 二.菜单配置中的光标移动与选中状态 三.保存配置 四.配置项帮助文档 一.打开 Linux 内核编译 菜单配置 执行 make menuconfig ...

  6. 4-10 :selected选中状态选择器

    :selected选中状态选择器 与:checked选择器相比,:selected选择器只能获取<select>下拉列表框中全部处于选中状态的<option>选项元素. 例如, ...

  7. PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态

    先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...

  8. 状态输出导航栏html,Vue实现导航栏效果(选中状态刷新不消失)_百厌_前端开发者...

    用 1.首先把这些小图片放到src/assets路径下面(自动base64编码) 2.在data()里边定义一个选中对应的变量isSelect,和循环遍历的数组,数组下面放图标对应的文字,和选中,未选 ...

  9. jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...

    ylbtech-jQuery:jQuery学习 jQuery语法实例 表格变色效果截图 jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式) H ...

最新文章

  1. 沈向洋、华刚:读科研论文的三个层次、四个阶段与十个问题
  2. 多个微服务控制台的多窗口展示
  3. (转载)配置apue.h
  4. 游标定位:Cursor类
  5. 代码分享h5-sessionStorage,提示app下载代码块
  6. sdut 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
  7. 微商分销代理商城源码-代理等级和升级条件
  8. 人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!
  9. Convolutional networks for fast, energy-efficient neuromorphic computing
  10. mybatis 带分号批量sql_请查收,32 道 MyBatis 的高频面试题已答完
  11. php教程笔记复习1-ajax
  12. java字符串直接比较_java中对于字符串的比较直接用“==”合适吗?
  13. 给大楼装上转动外壳减少风力作用
  14. Linux下安装wechat
  15. 技术评审之技术文档的规范模板
  16. 国微高校 html源码,国微CMS模板结构_模板教程_广州国微软件高校站群系统---领先的高校站群系统方案|全媒体方案|学校网站系统...
  17. alien skin ExposureX8胶片插件
  18. mysql5.7 1698 28000_MySqlError1698(28000)问题的解决方法
  19. kali 安装netspeed 网络流量监视器
  20. Linux系统之安装PDF阅读器

热门文章

  1. php会话的销毁和退出,销毁PHP会话
  2. C/C++ 编程规范(01 )— 排版
  3. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)
  4. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  5. Qt---布局,设置控件边距,拉伸因子
  6. Git常见问题解决方案指北
  7. xshell问题汇总
  8. Python 属性__getattribute__
  9. 语义网所谓的“本体”的具体例子是什么?人工智能
  10. Python 中 (,|)和(and,or)之间的区别 逻辑判断