c#Button Array ContextMenu为每个Button的Click重复菜单项

时间:2013-06-05 16:37:57

标签: c# contextmenu

正如我在主题中所说,我宣布了一个按钮阵列并在“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]); 
    } 
} 

以下是调用上下文菜单的按钮的Click事件

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) { } 

这就是问题:当我右键单击一个按钮时,上下文菜单显示为“答案”“Qestion”。但是,当我右键单击另一个按钮时,上下文菜单显示为“答案”“问题”“答案”“问题”。对于第三个按钮单击菜单项重复3次,并变为“答案”“问答”“答案”“问答”“答案”“问答”..

我该如何解决这个问题?感谢

0 个答案:

没有答案