• C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单


    实现的功能(C#的树控件 - TreeView控件):

    1、右击树节点所在区域时,才会弹出快捷菜单(右键菜单)。

    2、树控件失去焦点时,被选中的节点,仍然高亮显示。

    先看效果:

    图1 失去焦点时仍然高亮显示(颜色可以自己设置)

    图2 只会在选中的节点右下方弹出菜单

    实现方法详解(有时间再写):


    实现的代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace TreeViewDemo
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();

                //清空
                treeView1.Nodes.Clear();
                //treeView1.HideSelection = false;
                textBox1.Text = "节点";
            }

            //失去焦点时
            private void treeView1_Leave(object sender, EventArgs e)
            {

                if(treeView1.SelectedNode!=null)
                {
                    //让选中项背景色呈现红色
                    treeView1.SelectedNode.BackColor = Color.Red;
                    //前景色为白色
                    treeView1.SelectedNode.ForeColor = Color.White;
                }
            }

            //鼠标点击节点时触发
            private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {

                //判断是否是右击
                if (e.Button == MouseButtons.Right)
                {
                    //选中点击的节点
                    treeView1.SelectedNode = e.Node;
                    //获取节点区域的右下角坐标值
                    Point pos = new Point(e.Node.Bounds.X + e.Node.Bounds.Width, e.Node.Bounds.Y + e.Node.Bounds.Height);

                    //在选中的节点的右下角,弹出右键菜单,并设定控制者为treeView
                    contextMenuStrip1.Show(treeView1, pos);
                }
            }

           //将要选中新节点之前发生
            private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
            {

                if (treeView1.SelectedNode != null)
                {
                    //将上一个选中的节点背景色还原(原先没有颜色)
                    treeView1.SelectedNode.BackColor = Color.Empty;
                    //还原前景色
                    treeView1.SelectedNode.ForeColor = Color.Black;
                }
            }
        }
    }

  • 相关阅读:
    Uncaught TypeError: Cannot read property 'PRINT_INIT' of undefined user:100
    haproxy 负载elasticsearch 切换
    高德地图-展示多个信息窗口
    elasticsearh 中每个节点中需要有相同的插件
    haporxy 负载elasticsearch
    AngularJS之ng-if指令
    文件上传并展示上传文件
    json编解码
    Grok 正则捕获
    logstash date插件介绍
  • 原文地址:https://www.cnblogs.com/Ruiky/p/2326222.html
Copyright © 2020-2023  润新知