zoukankan      html  css  js  c++  java
  • 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;
                }
            }
        }
    }

  • 相关阅读:
    SpringCloud学习笔记【七】:Eureka,Consul,Zookeeper注册中心异同点
    SpringCloud学习笔记【六】:Consul实现服务注册与发现
    Docker安装Consul
    SpringCloud学习笔记【五】:Zookeeper代替Eureka实现服务注册与发现
    Docker安装Zookeeper以及Zk常用命令
    SpringCloud学习笔记【四】:Eureka的自我保护机制
    教你如何使用docsify快速部署优美的在线文档
    SpringCloud学习笔记【三】:Actuator微服务信息完善+Discovery获取注册信息
    SpringCloud学习笔记【二】:Eureka服务注册与发现
    WPF应用中一种比较完美的权限控制设计方式
  • 原文地址:https://www.cnblogs.com/Ruiky/p/2326222.html
Copyright © 2011-2022 走看看