积极答复者
多控件共享一个菜单问题

问题
答案
-
dear
1.先加入contextMenuStrip1.Opening事件并设定中断
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
}
2.在按钮按右键,此时会触发Opening事件,接着观察sender参数的SourceControl属性,由该属性就可得知contextMenuStrip1是被谁呼叫
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 A_Big_Mess 2011年3月21日 7:55
-
你好!
可能是你的代码其它问题所致,参考下面的示例:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializeDemo(); } void InitializeDemo() { ContextMenuStrip menu = new ContextMenuStrip(); menu.Items.Add("1").Click += (o, e) => { var menuItem = o as ToolStripItem; var button = menu.SourceControl as Button; MessageBox.Show(string.Format("MenuText:{0},ButtonText{1}", menuItem.Text, button.Text)); }; menu.Items.Add("2").Click += (o, e) => { var menuItem = o as ToolStripItem; var button = menu.SourceControl as Button; MessageBox.Show(string.Format("MenuText:{0},ButtonText{1}", menuItem.Text, button.Text)); }; for (int i = 0; i < 10; i++) { Button b = new Button() { Text = i.ToString() }; b.ContextMenuStrip = menu; b.Dock = DockStyle.Top; this.Controls.Add(b); } } } }
知识改变命运,奋斗成就人生!- 已标记为答案 A_Big_Mess 2011年3月21日 7:54
全部回复
-
dear
1.先加入contextMenuStrip1.Opening事件并设定中断
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
}
2.在按钮按右键,此时会触发Opening事件,接着观察sender参数的SourceControl属性,由该属性就可得知contextMenuStrip1是被谁呼叫
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 A_Big_Mess 2011年3月21日 7:55
-
你好!
可能是你的代码其它问题所致,参考下面的示例:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializeDemo(); } void InitializeDemo() { ContextMenuStrip menu = new ContextMenuStrip(); menu.Items.Add("1").Click += (o, e) => { var menuItem = o as ToolStripItem; var button = menu.SourceControl as Button; MessageBox.Show(string.Format("MenuText:{0},ButtonText{1}", menuItem.Text, button.Text)); }; menu.Items.Add("2").Click += (o, e) => { var menuItem = o as ToolStripItem; var button = menu.SourceControl as Button; MessageBox.Show(string.Format("MenuText:{0},ButtonText{1}", menuItem.Text, button.Text)); }; for (int i = 0; i < 10; i++) { Button b = new Button() { Text = i.ToString() }; b.ContextMenuStrip = menu; b.Dock = DockStyle.Top; this.Controls.Add(b); } } } }
知识改变命运,奋斗成就人生!- 已标记为答案 A_Big_Mess 2011年3月21日 7:54