C#中TreeView节点的自定义绘制方法

本文实例讲述了C#中TreeView节点的自定义绘制方法。分享给大家供大家参考。具体如下:

if ((e.State & TreeNodeStates.Selected) != 0)
{
 //演示为绿底白字
 e.Graphics.FillRectangle(Brushes.DeepSkyBlue, 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);
 }
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • c# TreeView添加右键快键菜单有两种方法

    一种就是使用TreeView的ContextMenuStrip属性,添加一个新ContextMenuStrip,这个方法非常的简答直接,缺点是右键菜单是整个控件响应的,也就是说即使没有右键选中节点也是会触发快捷菜单的显示 这种方法里获取哪一个的node选中是通过这个方法: 复制代码 代码如下: TreeNode curNode = this.trvFolder.GetNodeAt(e.X, e.Y) 另一种是创建ContextMenuStrip,并且使用TreeView的NodeMouseCli

  • C#中TreeView实现适合两级节点的选中节点方法

    本文实例讲述了C#中TreeView实现适合两级节点的选中节点方法.分享给大家供大家参考.具体如下: class TreeViewChecked { bool isfirst = true; public TreeViewChecked(TreeView treeView) { treeView.AfterCheck += new TreeViewEventHandler(treeView_AfterCheck); treeView.AfterSelect += new TreeViewEven

  • C#搜索TreeView子节点,保留父节点的方法

    本文实例讲述了C#搜索TreeView子节点,保留父节点的方法.分享给大家供大家参考.具体如下: C# 搜索TreeView子节点保留父节点: private void selectNodeByName(string name) { //重新生生成树, InitTvCatalog(); //删除节点 selectNode(tvCatalog.Nodes, name); } private void selectNode(TreeNodeCollection nodes, string name)

  • C#实现TreeView节点拖拽的方法

    本文实例讲述了C#实现TreeView节点拖拽的方法.分享给大家供大家参考.具体如下: public Form1() { InitializeComponent(); treeView1.AllowDrop = true; treeView1.ItemDrag += new ItemDragEventHandler(treeView1_ItemDrag); treeView1.DragEnter += new DragEventHandler(treeView1_DragEnter); tree

  • C#TreeView 无限级别分类实现方法

    做分类 经常会用到无限级别的分类  先介绍一下数据库的表结构 tid  类别编号 tname 类别名称 pid 父类编号 测试数据就不写了,大家可以自己插入一下试试 查询制定类别的 所有的子类   sql 的 代码 复制代码 代码如下: alter proc  proc_chaxun(@tid int )asbegin with tt  as     ( select tid,tname,pid from dbo.t_goodsType where tid=@tid        union a

  • c#的treeview绑定和获取值的方法

    对Treelist 的一些功能的实现 1.数据绑定最基本的两个属性:KeyFieldName和ParentFieldName.(这两个属性一设置就基本上可以实现分级了) 可以通过代码的编写实现,也可以直接在属性里面直接实现. 这种数据库设计是比较常见的,一般数据满足树形关系就可以这样设计.绑定数据时,只需指定DataSource为对应 的DataTable,指定KeyFieldName为表主键字段,ParentFieldName为表指向主键的外键字段名. 复制代码 代码如下: private v

  • C# TreeView读取数据库简单实例

    效果: 数据库: 思路: 利用for遍历,然后创建父节点,再根据父节点创建出子节点. 代码: 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Collections;using System.Con

  • C#实现treeview绑定的方法

    本文实例讲述了C#实现treeview绑定的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) {     if (!IsPostBack)     {  bindTree();     } } private void bindTree() {     ALIYUN_PIC.BLL.Folder_oper_BLL bll = new Folder_oper_BLL();

  • C#中TreeView节点的自定义绘制方法

    本文实例讲述了C#中TreeView节点的自定义绘制方法.分享给大家供大家参考.具体如下: if ((e.State & TreeNodeStates.Selected) != 0) { //演示为绿底白字 e.Graphics.FillRectangle(Brushes.DeepSkyBlue, e.Node.Bounds); Font nodeFont = e.Node.NodeFont; if (nodeFont == null) nodeFont = ((TreeView)sender)

  • .NET 6中为record类型自定义Equals方法

    目录 一.重写Equals方法 二.自定义Equals方法 三.结论 前言: record类型,这是一种新引用类型,而不是类或结构.record与类不同,区别在于record类型使用基于值的相等性. 例如: public record DemoRecord(int id); public class DemoClass {     public DemoClass(int id)     {         this.id = id;     }     public int id { get;

  • Python OpenCV中的drawMatches()关键匹配绘制方法

    目录 作用说明 函数原型 参数详解 结果 作用说明 该方法被用于绘制关键点的匹配情况.我们看到的许多匹配结果都是使用这一方法绘制的——一左一右两张图像,匹配的关键点之间用线条链接. 函数原型 cv.drawMatches( img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg cv.drawMatche

  • c#在程序中定义和使用自定义事件方法总结

    C#在程序中定义和使用自定义事件可以分为以下几个步骤: 步骤1:在类中定义事件 using System; public class TestClass { //.... public event EventHandler TestEvent } 步骤2:定义事件参数 注意:事件参数类TestEventArgs继承自System.EventArgs using System; public class TestEventArgs : EventArgs { public TestEventArg

  • Android中MPAndroidChart自定义绘制最高点标识的方法

    前言 MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活.MPAndroidChart显得更为轻巧和简单,拥有常用的图表类型:线型图.饼图.柱状图和散点图. MPAndroidChart自定义绘制最高点标识 距离上次发布关于 MPAndroidChart 的文章已经过去一个多月了,项目中新增了一个需求,看起来很简单.就是在最高点绘制矩形框,标识最高点的数值

  • JQuery中DOM节点的操作与访问方法实例分析

    本文实例讲述了JQuery中DOM节点的操作与访问方法.分享给大家供大家参考,具体如下: Jquery中DOM节点的操作 已有对象.append(要添加的对象) 作为最后一个子元素添加 要添加的对象.appendTo(已有对象) prepend()/prependTo() 作为第一个子元素添加 已有元素.before(要添加的元素)/after() 在对象前面/后面添加新的元素,可用逗号分割添加多个元素 要添加的元素.insertBefore(已有元素)/insertAfter() .empty

  • vue项目中使用bpmn为节点添加颜色的方法

    内容概述 bpmn是比较方便的绘制流程图的插件,官方demo https://github.com/bpmn-io/bpmn-js-examples 本文主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 前情提要 上文我们已经实现了在外部更改节点名.此时又有新玩法:在流程图中,根据节点状态为其标记不同颜色.例如:已完成:黄色,正在进行:绿色,本次我们通过两种方式来实现该需求.效果: 方式1:modeling.setColo

  • xpath的数据和节点类型以及XPath中节点匹配的基本方法

    XPath数据类型 XPath可分为四种数据类型: 节点集(node-set) 节点集是通过路径匹配返回的符合条件的一组节点的集合.其它类型的数据不能转换为节点集. 布尔值(boolean) 由函数或布尔表达式返回的条件匹配值,与一般语言中的布尔值相同,有true和 false两个值.布尔值可以和数值类型.字符串类型相互转换. 字符串(string) 字符串即包含一系列字符的集合,XPath中提供了一系列的字符串函数.字符串可与数值类型.布尔值类型的数据相互转换. 数值(number) 在XPa

随机推荐