我不确定它叫什么或我应该查找什么。我正在使用我附加listBox1.ContextMenuStrip = contextMenuStrip1;
我希望我的列表框中的项目能够右键单击并选择“删除”之类的内容。使用我现在拥有的内容,我可以点击列表框中的任意位置,然后将结果应用于当前所选项目。这令人困惑,容易出错。
如何让右键实际映射到我的鼠标结束的元素,当它不在元素上时(列表框中的空白区域)不显示右键菜单。
答案 0 :(得分:2)
简单的解决方案(不完全是您所知道的),只是为了确保在允许菜单打开之前选择了一个项目。
您可以通过注册ContextMenuStrip.Opening
事件来执行此操作,如果未选择任何项目则取消该事件。
如果我想到更聪明的东西,我会更新:)
[编辑]
好的很酷,IndexFromPoint
上有一个ListBox
方法。您可以使用它来确定鼠标在项目上方!如果您需要代码示例,请告诉我。
[EDIT2]
好的,好的,帮不了自己..你走了:
void ContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
if (listBox1.IndexFromPoint(listBox1.PointToClient(Cursor.Position)) == -1)
e.Cancel = true;
}