正如我在主题中所说,我声明了一个按钮数组并在“for”循环中提供了属性,如下所示。
for (int a = 0; a < row; a++) {
for (int b = 0; b < column; b++) {
buttons[a, b] = new Button();
buttons[a, b].Click += new EventHandler(buttons_Click);
buttons[a, b].ContextMenu = MyCM.CM; this.Controls.Add(buttons[a, b]);
}
}
这是调用上下文菜单的按钮的单击事件
private void buttons_Click(object sender, EventArgs e) {
Button u = sender as Button;
MyCM.contextmenum(u);
}
这是我的上下文菜单类“MyContextMenu”“MyCM”
public class MyContextMenu {
Button u = new Button();
public ContextMenu CM = new ContextMenu();
public void contextmenum(Button u) {
MenuItem m1 = new MenuItem("Question");
MenuItem m2 = new MenuItem("Answer");
CM.MenuItems.Add(m1);
CM.MenuItems.Add(m2);
m1.Click += new EventHandler(m1_Click);
m2.Click += new EventHandler(m2_Click);
this.u.ContextMenu = CM;
this.u = u;
}
private void m1_Click(object sender, EventArgs e) { }
private void m2_Click(object sender, EventArgs e) { }
这就是问题:当我右键单击一个按钮时,上下文菜单显示为“答案”“问题”。但是,当我右键单击另一个按钮时,上下文菜单显示为“答案”“问题”“答案”“问题”。对于第三个按钮,单击菜单项会重复 3 次,并变为“Answer”“Qestion”“Answer”“Qestion”“Answer”“Qestion”..
我怎样才能解决这个问题?谢谢