2

我在我的表格布局中添加了一个鼠标事件控制器,但它不起作用,下面是我到目前为止所做的工作

private void tablelayout_MouseClick(object sender, MouseEventArgs e)
{
        if (e.Button == MouseButtons.Right)
        {
            ContextMenu m = new ContextMenu();
            m.MenuItems.Add(new MenuItem("Add Device")); 
            m.MenuItems.Add(new MenuItem("Delete Device"));
            m.MenuItems.Add(new MenuItem("Fire"));
            m.MenuItems.Add(new MenuItem("Fault"));
            m.MenuItems.Add(new MenuItem("Suppress"));

         }

 }

这是我设计的表格和表格布局

http://i47.tinypic.com/29mnfhj.jpg

http://tinypic.com/r/29mnfhj/6

4

2 回答 2

3

记得打电话

m.Show(tablelayout, e.Location);
于 2013-04-08T07:46:31.533 回答
1

ContextMenu问题是你根本不显示

    private void tableLayout_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            ContextMenu m = new ContextMenu();
            m.MenuItems.Add(new MenuItem("Add Device"));
            m.MenuItems.Add(new MenuItem("Delete Device"));
            m.MenuItems.Add(new MenuItem("Fire"));
            m.MenuItems.Add(new MenuItem("Fault"));
            m.MenuItems.Add(new MenuItem("Suppress"));
            //add this line to the event handler
            m.Show((Control)(sender), e.Location);
        }
    }

对于您关于为每个菜单项添加此上下文菜单的事件处理程序的问题,您需要定义这样的事件处理程序:

m.MenuItems[0].Click += MenuItemClick;

和事件:

void MenuItemClick(object sender, EventArgs e)
{
    // your code 
}

到目前为止,我们已经定义了 click 事件处理程序,用于MenuItem("Add Device")对其他 MenuItems 以及这个重复这些步骤

于 2013-04-08T08:18:20.100 回答