关于C#的弹出菜单解决方法
关于C#的弹出菜单
窗体上放contextMenuStrip1,设计菜单。
期望左键单击的时候弹出菜单,于是设计代码如下:
private void button4_Click(object sender, EventArgs e)
{
button4.Tag = 1;
contextMenuStrip1.Show(button4, 0, button4.Height + 2);
button4.Tag = 2;
}
可是这三行代码是一气呵成的执行完了啊,我期望contextMenuStrip1.Show实现类似TrackPopupMenu的效果,即菜单不消失的话,不执行到button4.Tag = 2;这一行。
难道要完全用API来创建菜单显示菜单?难道这个需求很奇葩?
百思不得其解,期待各位帮助!
------解决方案--------------------
在contextMenuStrip1的Closed事件里面写button4.Tag = 2;
------解决方案--------------------
它有Closed和Closing事件,可以在这里设置tag
------解决方案--------------------
------解决方案--------------------
你都 show了 等 show结束了 才 继续 执行 下面的
------解决方案--------------------
方便本来就是相对的
面向对象的编程中,很多时候可以不考虑过程,这就是方便的地方
但是你就是想对每个过程进行控制,就会变得不方便
不方便不代表不能实现,无非就是麻烦一点而已.
窗体上放contextMenuStrip1,设计菜单。
期望左键单击的时候弹出菜单,于是设计代码如下:
private void button4_Click(object sender, EventArgs e)
{
button4.Tag = 1;
contextMenuStrip1.Show(button4, 0, button4.Height + 2);
button4.Tag = 2;
}
可是这三行代码是一气呵成的执行完了啊,我期望contextMenuStrip1.Show实现类似TrackPopupMenu的效果,即菜单不消失的话,不执行到button4.Tag = 2;这一行。
难道要完全用API来创建菜单显示菜单?难道这个需求很奇葩?
百思不得其解,期待各位帮助!
------解决方案--------------------
在contextMenuStrip1的Closed事件里面写button4.Tag = 2;
------解决方案--------------------
它有Closed和Closing事件,可以在这里设置tag
------解决方案--------------------
// 右键菜单 关闭之前发生
private void cs_Closing(object sender, ToolStripDropDownClosingEventArgs e)
{
}
------解决方案--------------------
你都 show了 等 show结束了 才 继续 执行 下面的
------解决方案--------------------
方便本来就是相对的
面向对象的编程中,很多时候可以不考虑过程,这就是方便的地方
但是你就是想对每个过程进行控制,就会变得不方便
不方便不代表不能实现,无非就是麻烦一点而已.