[关闭]
@kuier1992 2015-08-31T09:51:05.000000Z 字数 1153 阅读 5302

C#鼠标右键菜单(快捷菜单)

C#


以前没怎么用过鼠标右键弹出菜单这个功能,今天使用到了,稍微总结一下。
快捷菜单(也称为上下文菜单)在用户单击鼠标右键时会出现在鼠标位置。 快捷菜单在鼠标指针位置提供了工作区或控件的选项。

ContextMenuStripContextMenu的不同,其实就是一个新一个旧。
ContextMenuStrip控件替换 ContextMenu 控件并向其添加功能;但是也可选择保留 ContextMenu 控件以备向后兼容和将来使用。

ContextMenuStrip重要的类

说明
ToolStripMenuItem 表示 MenuStrip 或 ContextMenuStrip 上显示的可选选项。
ToolStripDropDown 表示使用户能从列表中选择单个项的控件,该列表在用户单击 ToolStripDropDownButton 或更高级菜单项时显示。
ToolStripDropDownItem 为派生自 ToolStripItem 的控件提供基本功能,当单击控件时显示下拉项.

在这里主要使用到ToolStripMenuItem

直接看代码:

  1. //构造了一个ContextMenuStrip对象
  2. ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
  3. contextMenuStrip.Items.Add("xxx", null, ContextMenuStripEditArgs);
  4. contextMenuStrip.Items.Add("xxx");
  5. //将控件的ContextMenuStrip属性指向刚刚构造的ContextMenuStrip对象就可以使用了。
  6. MainMap.ContextMenuStrip = contextMenuStrip;
  7. //点击第一个鼠标右键item执行的代码
  8. private void ContextMenuStripEditArgs(Object sender, EventArgs e)
  9. {
  10. MessageBox.Show("haha");
  11. }

ContextMenuStripEditArgs是符合System.EventHandler委托类型的实例,这里使用了简化语法,不需要构造委托对象,传入符合委托对象的实例方法即可。EventHandler语法为:

  1. [SerializableAttribute]
  2. [ComVisibleAttribute(true)]
  3. public delegate void EventHandler(
  4. Object sender,
  5. EventArgs e
  6. )

Items.Add方法有好几个重载,可以构造含图片的快捷菜单;还有一个AddRange方法可以向ContextMenuStrip添加若干菜单项

暂时简单的使用一下快捷菜单,就是这样。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注