我一直在尝试创建右键单击功能以在C#中显示上下文菜单,但它似乎不起作用。知道为什么吗?
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenu m = new ContextMenu();
m.MenuItems.Add(new MenuItem("Copy"));
int currentMouseOverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;
m.Show(dataGridView1, new Point(e.X, e.Y));
}
}
答案 0 :(得分:1)
我不确定您使用的是什么,WPF / WinForms / BlackMagic /等...但似乎每次点击右键都会创建一个新的上下文菜单,这不是&# 39; t附在任何东西上......
ContextMenu MyMenu = new ContextMenu();
MyMenu.MenuItems.Add("Copy");
你应该将它附加到你正在使用的任何控件上(在你的情况下,我想要的网格或行):
SomeGrid.ContextMenu = MyMenu;
在WPF中,在ListBox上使用一个看起来像
<ListBox x:Name="NameYourList"
ItemsSource="{Binding SomeItem}"
SelectedItem="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}"
>
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header ="Copy Me" Command="{Binding Copy_Command}"
CommandParameter="{Binding SomeProperty}"
/>
</ContextMenu>
</ListBox.ContextMenu>