我已将鼠标事件控制器添加到我的表格布局但它无法正常工作,下面是我到目前为止的工作
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"));
}
}
这是我设计的表格和表格布局
答案 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重复这些步骤