C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
2012-02-08 15:00
1806 查看
http://www.cnblogs.com/Ruiky/archive/2012/01/19/2326222.html
实现的功能(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;
}
}
}
}
实现的功能(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;
}
}
}
}
相关文章推荐
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- 如何改变treeview控件选中节点的高亮颜色,就是大家都熟悉的深蓝色,同样可以改变失去焦点时,高亮显示的颜色
- C# treeview在焦点失去时高亮显示
- c# 右键单击 treeview 控件, 显示菜单 以及 从一个 form 调用 另一个form
- C#TreeView窗体版点击右键弹出菜单+直接修改名称+新建节点
- C# winform treeview node添加右键菜单并选中节点
- C#当用户在ritchbox中单击鼠标右键时,弹出一个快捷菜单,单击某一地名,在ritchbox中显示相关信息
- C#TreeView节点选中后失去焦点时改变节点背景色
- winform_TreeView失去焦点时选中节点仍然突显
- C#- TreeView右键弹出菜单
- C# winform treeview node添加右键菜单并选中节点
- C# WinForm TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- WinForm C# TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- C# WinForm TreeView改变选中节点颜色,失去焦点时选中节点仍突显。
- VC ListControl/TreeControl失去焦点后,所选择行仍然高亮显示
- Radtreeview使其只在某层节点上显示右键菜单(telerik控件)
- C# winform treeview node添加右键菜单并选中节点
- C#/VB.NET判断右键弹出菜单的来源控件(从哪个控件弹出来的)
- C#ListView失去焦点选中行不能高亮显示的问题解决
- TreeList 右击节点时才显示右键菜单,并使该节点获得焦点