C# TreeView 右键菜单
方法一:
在winform中,添加一个contextMenuStrip1,设置TreeView的属性ContextMenuStrip为contextMenuStrip1,并为这个contextMenuStrip1添加几个菜单项,点击每个菜单项,实现其click事件,然后添加treeivew的nodemouseclick事件,类似如下代码:
//右键菜单
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
if (e.Node.Parent == null || e.Node == null) return;
treeView1.SelectedNode = e.Node;
contextMenuStrip1.Show(tv_Roots, e.X, e.Y);
} void contextMenuStripItem_Click(object sender, EventArgs e)//编辑飞行段
{
}
方法二:不同节点对应不同的右键菜单(摘自http://www.cnblogs.com/imihiroblog/archive/2012/06/02/2531949.html)
private void tvOneRoot_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
if (e.Node == null) return; //无节点
if (e.Node.Level == ) return;
int nodeType = GetNodeTypeByGuid(e.Node.Name);
tvOneRoot.SelectedNode = e.Node;
InitcmsOneRout(nodeType);
cmsOneRout.Show(tvOneRoot, e.X, e.Y);
} /// <summary>
/// 初始化cmsOneRoot 从nodetype
/// </summary>
/// <param name="nodetype"></param>
private void InitcmsOneRout(int nodetype)
{
cmsOneRout = new ContextMenuStrip();
if (nodetype == -)
{
ToolStripMenuItem tmiEditRoutStation = new ToolStripMenuItem("编辑飞行站点");
tmiEditRoutStation.Click += new EventHandler(tmiEditRoutStation_Click);
cmsOneRout.Items.Add(tmiEditRoutStation);
ToolStripMenuItem tmiMoveRouteStation = new ToolStripMenuItem("更改位置");
tmiMoveRouteStation.Click += new EventHandler(tmiMoveRouteStation_Click);
cmsOneRout.Items.Add(tmiMoveRouteStation);
ToolStripMenuItem tmiDeleRouteStation = new ToolStripMenuItem("删除飞行站点");
tmiDeleRouteStation.Click += new EventHandler(tmiDeleRouteStation_Click);
cmsOneRout.Items.Add(tmiDeleRouteStation);
}
else if (nodetype == )
{
ToolStripMenuItem tmiEditRout = new ToolStripMenuItem("编辑飞行段属性");
tmiEditRout.Click += new EventHandler(tmiEditRout_Click);
cmsOneRout.Items.Add(tmiEditRout);
ToolStripMenuItem tmiDeleteRout = new ToolStripMenuItem("删除飞行段");
tmiDeleteRout.Click += new EventHandler(tmiDeleteRout_Click);
cmsOneRout.Items.Add(tmiDeleteRout);
}
else if (nodetype == )
{ }
else if (nodetype == )
{ }
else
{ } } void tmiEditRout_Click(object sender, EventArgs e)//编辑飞行段
{
string routId = tvOneRoot.SelectedNode.Name;
RouteParameter rp = GetRouteParaByGuid(routId);
FrmPointProperty frm = new FrmPointProperty(rp, , );
frm.OnRoutInfoUpdated += new FrmPointProperty.DelegateRouteInfoUpdated(frm_OnRoutInfoUpdated);
frm.ShowDialog();
}
C# TreeView 右键菜单的更多相关文章
- WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 菜单M ...
- QStandardItemModel角色控制及QTreeView加入不同的右键菜单
1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QSt ...
- 【转】WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 菜单Menu的自定义样式: 右键菜单ContextMenu的自定义样式 ...
- Qt532.【转】Qt创建鼠标右键菜单
ZC:可以通过 设置 (QWebView*)->setContextMenuPolicy(NoContextMenu); 来关闭 QWebView的默认右键菜单 Qt创建鼠标右键菜单_疯华正茂 ...
- 在WPF中弹出右键菜单时判断鼠标是否选中该项
和上篇在WPF的TreeView中实现右键选定一样,这仍然是一个右键菜单的问题: 这个需求是在一个实现剪贴板的功能的时候遇到的:在弹出右键菜单时,如果菜单弹出位置在ListViewItem中时,我 ...
- QT5 QTreeView添加右键菜单
C++ QT5学习--QTreeView控件创建右键菜单 QTreeView是QWidget的子类,我们再改写QTreeView类的时候,注意的是继承关系. 1.TreeView.h class Tr ...
- Bootstrap 树形列表与右键菜单
Bootstrap 树形列表与右键菜单 介绍两个Bootstrap的扩展 Bootstrap Tree View 树形列表 jQuery contextMenu 右键菜单 Demo采用CDN分发,直接 ...
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- win10 右键菜单添加Git Hash Here
1.通过在"运行"中输入'regedit',打开注册表. 2.找到[HKEY_CLASSES_ROOT\Directory\Background]. 3.在[Background] ...
随机推荐
- MySQL(八)事务的隔离级别
一.事务的并发问题 1.脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 2.不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并 ...
- springboot之Redis
1.springboot之Redis配置 在学习springboot配置Redis之前先了解Redis. 1.了解Redis Redis简介: redis是一个key-value存储系统.和Memca ...
- 在CentOS7 安装 Redis数据库
环境说明: 名称 版本 CentOS CentOS Linux release 7.4.1708 (Core) VMware Fusion 专业版 10.1.1 (7520154) SSH Shell ...
- python 之 subprocesss 模块、configparser 模块
6.18 subprocesss 模块 常用dos命令: cd : changedirectory 切换目录 tasklist:查看任务列表 tasklist | findstr python ...
- Java Embeded 包 与各个架构之间的关系
Oracle Java Embedded Suite 7.0 for Linux x86 V37917-01.zip Oracle Java Embedded Suite ...
- spring 条件化配置
步骤一: 实现接口:org.springframework.context.annotation.Condition import org.springframework.context.annota ...
- linux命令行删除N天前的数据的命令
命令: find . -mtime +N -type f -name "*.log.*" -exec rm -f {} \; 简单解释: find .查询 ; -mtime 规 ...
- shell 学习笔记3-shell变量扩展
一.特殊位置参数变量 1.特殊位置参数变量 在shell中比如:$0.$1.$#,等被称为特殊位置参数变量,当命令行.函数.脚本执行等处传递参数时,就需要使用位置参数变量 参数说明如下: 2.示例$1 ...
- 【转载】Intellij IDEA神器居然还有这些小技巧
概述Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intell ...
- 如何使用Class和ClassLoader加载文件
很多时候我们都需要在程序中加载各种文件,比如在加载配置文件,加载properties文件,或者只是加载一个文本文件,然后输出其中的内容,我在初学java的时候,就对加载文件非常头疼,今天又遇见了加载文 ...