0

正如我在主题中所说,我声明了一个按钮数组并在“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”..

我怎样才能解决这个问题?谢谢

4

0 回答 0