【转】ContextMenuStrip菜单应用
测试可用的代码:
#region 右键快捷菜单单击事件
private void contextMenuStrip1_ItemClick(object sender, EventArgs e)
{
ToolStripItem item = (ToolStripItem)sender;
Clipboard.SetText(item.Text); //把要插入的文本放到剪切板
SendKeys.Send("^v"); // 模拟ctrl+v
}
#endregion //写右键快捷菜单控件
for (int i = 0; i < DataClass.ClassCustomParameter.intRowCountCustomParmeter; i++)
{
ToolStripMenuItem menuitem;
menuitem = new ToolStripMenuItem();
menuitem.Text = DataClass.ClassCustomParameter.strCustomParameter[i, 0];
menuitem.Name = "tllStripMenu" + i;
menuitem.Click += new EventHandler(contextMenuStrip1_ItemClick);
contextMenuStrip1.Items.Add(menuitem);
}
//各控件绑定右键快捷菜单
textBoxCaseReason.ContextMenuStrip = contextMenuStrip1;
【转】ContextMenuStrip菜单应用
ContextMenuStrip 控件提供了与某个控件关联的快捷菜单。也就是说通过这个控件可以方便的实现在别的控件上弹出右键快捷菜单。
1、先添加一个ContextMenuStrip 控件到Form上
2、设置目标控件(如窗体、文本框等)的ContextMenuStrip属性,指向你刚才添加的ContextMenuStrip 控件。这样就实现了两者的关联。
3、动态将一些菜单项添加到 ContextMenuStrip 控件中,如:
//上下文菜单项
ContextMenuStrip1.Items.Add(msEditNew);
ContextMenuStrip1.Items.Add(msEditBar1);
ContextMenuStrip1.Items.Add(msEditCut);
ContextMenuStrip1.Items.Add(msEditPaste);
ContextMenuStrip1.Items.Add(msEditDelete);
ContextMenuStrip1.Items.Add(msEditBar2);
这样就OK了,你在目标控件上按右键时将弹出快捷菜单。
动态添加ContextMenuStrip项(ToolStripItem)
//绑定菜单 |
动态生成ContextMenuStrip
数据表:
代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WindowsFormsApplication25
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} /// <summary>
/// 窗体加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
ToolStripMenuItem tmpItem = new ToolStripMenuItem("移动到");
this.contextMenuStrip1.Items.Add(tmpItem); CreateContextMenuStrip(tmpItem.DropDownItems, GetTable(), 1);
} /// <summary>
/// ContextMenuStrip中DropDownItem单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void MenuClicked(object sender, EventArgs e)
{
MessageBox.Show((sender as ToolStripMenuItem).Text);
} /// <summary>
/// 递归生成ContextMenuStrip
/// </summary>
/// <param name="items"></param>
/// <param name="dt"></param>
/// <param name="parentId"></param>
public void CreateContextMenuStrip(ToolStripItemCollection items, DataTable dt, int parentId)
{
if (dt.Rows.Count == 0)
return;
string fliter = string.Format("ParentGroup={0}", parentId);
DataRow[] dr = dt.Select(fliter);
foreach (DataRow row in dr)
{
ToolStripMenuItem menuitem;
menuitem = new ToolStripMenuItem();
menuitem.Text = row["GroupName"].ToString();
menuitem.Name = row["ID"].ToString();
menuitem.Click += new EventHandler(MenuClicked);
items.Add(menuitem);
CreateContextMenuStrip(menuitem.DropDownItems, dt, Convert.ToInt32(row["ID"]));
dt.Rows.Remove(row);
}
} /// <summary>
/// 获取数据源
/// </summary>
/// <returns></returns>
DataTable GetTable()
{
SqlDataAdapter da = new SqlDataAdapter("select * from ReportGroup", "server=(local);uid=sa;pwd=123;database=ExcelMaster;");
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
} }
}

结果:
【转】ContextMenuStrip菜单应用的更多相关文章
- C#文本选中及ContextMenuStrip菜单使用
'文本框选中显示'TextBox1.SelectAll()选择所有文本'textBox1.Text.Insert(start,strInsertText)指定位置添加文本1 Private Sub T ...
- WinForm 菜单控件
一:MenuStrip 菜单条 MenuStrip 是应用程序菜单条的容器. 二:ToolStripMenuItem 像上面图中, 文件 格式 等这些菜单当中的一级菜单以及文件中的 新建 打开 分割条 ...
- C# WinForm 技巧八:界面开发之“WeifenLuo.WinFormsUI.Docking+OutLookBar” 使用
概述 最近几天一直在关注WinFrom方面的文章主要还是园子里伍华聪的博客,在看看我们自己写的项目差不忍赌啊,有想着提炼一下项目的公共部分,公共部分有分为 界面,类库两方面,今天主要是把界面 ...
- C# WinForm 技巧八:界面开发之“WeifenLuo.WinFormsUI.Docking+OutLookBar” 使用
概述 转自 http://www.cnblogs.com/luomingui/archive/2013/09/19/3329763.html 最近几天一直在关注WinFrom方面的文章 有想着提炼一下 ...
- WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)
WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同 ...
- WeifenLuo.WinFormsUI.Docking"的使用 z
在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件. ...
- Dev XtraTreeList 学习
本文转载:http://www.cnblogs.com/VincentLuo/archive/2012/01/06/2313983.html 一.设置载请保留地址http://www.cnblogs. ...
- 【C#】ContextMenuStrip 右键菜单颜色设置
有些时候自己想要修改ContexMenuStrip右键菜单的一些背景色之类的,该如何实现呢? 首先: ContextMenuStrip _context = new ContextMenuStrip( ...
- Winform菜单之ContextMenuStrip
ContextMenuStrip实际就是上下文菜单,就是右键单击某个窗体或者控件后出来的菜单. 从工具栏里拖一个出来放在窗口上就行 然后进行一系列的设置,设置方法跟前面的MenuStrip基本是一样的 ...
随机推荐
- centos安装firefox flash插件
centos下的firefox flash插件默认不是最新版的,安装过程如下: 将安装地址添加到repolist中 sudo yum -y install http://linuxdownload.a ...
- winform下重画ListBox
Windows Forms是由Win32 API封装的开发组件,最初是为了替代mfc,但却没有体现与Model View Controller架构对应的特色,进而在.net framework 3.0 ...
- celery简单应用
写作背景介绍 在celery简单入门中已经介绍了写作的背景,这篇文章主要是深入介绍celery的使用技巧.在实际的项目中我们需要明确前后台的分界线,因此我们的celery编写的时候就应该是分成前后台两 ...
- GUID全局唯一标识符相关知识了解
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中.在理想情 ...
- ES6转码器babel的使用
1. 进入ES6的项目,执行 npm init // 初始化package.json 2. 在与package.json同一目录下编写配置文件 .babelrc { "presets&quo ...
- vs2012 MSDN帮助文档离线包下载安装方法
vs2012安装文件 自带的 MSDN帮助文档不全, 需要自己手动添加需要的离线文档包, 具体方法如下 1. 打开 vs2012 2. 按 ctrl + alt + F1 打开帮助文档管理器 3. 在 ...
- depth and distance
1down votefavorite I'm implementing ominidirectional shadow mapping for point lights. I want to us ...
- arcgis打开图层后右下角坐标小数点位数调整
打开arcmap,加载图层后,在其右下方会显示鼠标移动的点坐标,但是默认显示的小数点只有三位,如果是经纬度坐标,只有三位的话不够精确,因此想着能否改变其显示的精度,搜了半天,算是搜到了,但是过了一段时 ...
- 统一回复《怎么学JavaScript?》
作者:小不了链接:https://zhuanlan.zhihu.com/p/23265155来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信问我( ...
- Codeforces Round #385 (Div. 2) A. Hongcow Learns the Cyclic Shift 水题
A. Hongcow Learns the Cyclic Shift 题目连接: http://codeforces.com/contest/745/problem/A Description Hon ...