我想实现根据鼠标右击的位置分配不同的ContextMenuStrip怎么实现private void picB_Main_MouseClick(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Right) //鼠标右击
{
if( picB_Main.Image != null )
{
if (在位置范围1里面)
{
picB_Main.ContextMenuStrip = ctxtMS_one;
}
else if (在位置范围2里面)
{
picB_Main.ContextMenuStrip = ctxtMS_two;
}
else
{
picB_Main.ContextMenuStrip="等于空这个时候不能用none了,怎么办啊?";
}
}
}
}问题就出在响应鼠标点击时间好象在ContextMenuStrip之后进行的,也就是说我这样一来的结果会传到下次右击时才生效,怎么修正啊?
{
if(e.Button == MouseButtons.Right) //鼠标右击
{
if( picB_Main.Image != null )
{
if (在位置范围1里面)
{
picB_Main.ContextMenuStrip = ctxtMS_one;
}
else if (在位置范围2里面)
{
picB_Main.ContextMenuStrip = ctxtMS_two;
}
else
{
picB_Main.ContextMenuStrip="等于空这个时候不能用none了,怎么办啊?";
}
}
}
}问题就出在响应鼠标点击时间好象在ContextMenuStrip之后进行的,也就是说我这样一来的结果会传到下次右击时才生效,怎么修正啊?
解决方案 »
- 向各位同事求助,这样的一句SQL语句怎么实现?
- SerialPort串口相关问题
- 本人菜鸟跪求解答真心希望大侠能帮帮,c#串口通信程序连接两台计算机。程序是网上下载的,运行没问题,可是好像用不了,不知道问题出在哪里,真心希望各位大侠可以帮帮我
- 问一个winform中gridview的触发事件名称,送分送分
- 类似word中的查找怎么做
- DataGridView和DataGridViewCheckBoxColumn问题
- 旺旺群发器
- 判断正整数
- 想做个16进制的编辑器。
- 请问为何dataset.merge方法生成了重复的记录?
- [分享小技巧]如何实现自定义文件的关联文件,内详+散分
- 谁知道接收GPS信号的SiRF芯片吗?
主要问题还是这个:问题就出在响应鼠标点击时间好象在ContextMenuStrip之后进行的,也就是说我这样一来的结果会传到下次右击时才生效,怎么修正啊?
{
if (e.Button == MouseButtons.Right)
{
if (PointInRectangle(e.Location, new Rectangle(0, 0, this.Width / 2, this.Height / 2)))
{
this.ContextMenuStrip = contextMenuStrip1;
}
else if (PointInRectangle(e.Location, new Rectangle(this.Width / 2, this.Height / 2, this.Width / 2, this.Height / 2)))
{
this.ContextMenuStrip = contextMenuStrip2;
}
else
{
this.ContextMenuStrip = null;
} }
}