如何在表格布局中向单元格添加鼠标右键事件?

时间:2013-04-08 06:31:00

标签: c# winforms

我已将鼠标事件控制器添加到我的表格布局但它无法正常工作,下面是我到目前为止的工作

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

2 个答案:

答案 0 :(得分:3)

请记得致电

m.Show(tablelayout, e.Location);

答案 1 :(得分: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 
}

到目前为止,我们为MenuItem("Add Device")定义了点击事件处理程序,为其他MenuItem重复这些步骤