在c#.net中添加一个弹出式菜单是很简单的事,通过从windows form控件拖一个contextmenu到窗体上,然后为相应的控件指定contextmenu属性,即可在右键点击该控件的的时候弹出菜单,设置方法如图:
图1
左键如何也能弹出菜单呢?
用contextmenu.show方法,显示菜单;point结构来定义菜单与相关控件的位置。
步骤如下(我用的是sharpdevelop,vs.net类似):
1. 新建一个复合工程,选择windows窗体工程,
图2
2. 向窗体上拖一个contextmenu控件和一个button控件。
contextmenu的name改为mycontextmenu,并添加几个菜单项。
把button的name改为mybutton,size设为(100,80)我这里就以button控件为例,其他的控件方法类似。
图3
3. 为按钮添加事件
void mybuttonclick(object sender, system.eventargs e)
{
point p=new point(0,0);
this.mycontextmenu.show(mybutton,p);
}
编译,运行结果。在左键点击按钮后弹出了菜单
图4
4. 注意到上面代码中的point结构,point结构表示在二维平面中定义点的、整数 x 和 y坐标的有序对。上面是(0,0),不防改成(50,40)看是否显示在中间。
show方法的定义public void show(control control,point pos); 参数 :一个 control 对象,它指定与此快捷菜单相关联的控件。 一个 point 对象,它指定要显示菜单的位置的坐标。相对于 control 参数中指定的控件的工作区坐标来指定这些坐标
图5
5.至此我们的弹出菜单就完成了。: )