【转】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基本是一样的 ...
随机推荐
- struts2学习笔记之一:基本简介
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图的数据交互(所有的访问都会被控制器操作控制) ...
- paip.提升效率---提升绑定层次--form绑定取代field绑定
paip.提升效率---提升绑定层次--form绑定取代field绑定 =================== 编辑form中,常常需要,绑定一个对象到个form.. 传统上要绑定field开始. ...
- 关于eclipse android 在manifest改app应用包名注意事项
在我刚学android 时候,然后立即就做项目.那时连eclipse 使用都不是很熟练.很多功能都不知道.新手如果这时去改app应用的包名,没有改好会变成所有控件在R文件里面id都找不到. 先上两张图 ...
- 26数据查询的各种小玩法-select 下(必学)-天轰穿sqlserver视频教程
大纲:简单查询-选择数据列,使用字符串,改变列标题,使用数据运算,使用ALL语DISTINCT关键字,使用TOP关键字,排序 优酷超清地址,为了冲优酷的访问量,所以这里只放优酷的地址了,其实其他网站还 ...
- 使用Reveal查看任意App的技巧
转:http://www.jianshu.com/p/4dc8f94ca27c 前言 Reveal(http://revealapp.com)是一个很强大的iOS View Hierarchy工具,与 ...
- Advacned Puppet: Puppet Master性能调优
本文是Advanced Puppet系列的第一篇:Puppet master性能调优,谈一谈如何优化和提高C/S架构下master端的性能. 故事情节往往惊人地类似:你是一名使用Puppet管理线上业 ...
- GBK、UTF8、UNICODE编码转换
string GBKToUTF8(const std::string& strGBK) { , strGBK.c_str(), -, NULL, ); WCHAR * wszUTF8 = ne ...
- HEXO+PAGE 搭建个性博客
新博客地址: http://javen205.oschina.io https://javen205.github.io Hexo 是高效的静态站点生成框架,她基于 Node.js. 通过 Hexo ...
- 奇怪吸引子---WangSun
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- PUT vs POST in REST
来自:http://stackoverflow.com/questions/630453/put-vs-post-in-rest http://www.15yan.com/story/7dz6oXiS ...