在鼠标按下事件中选择ListBox控件中的项目(WinForm和C#)

6
在 Windows Forms 的 ListBox 控件中,如果我在鼠标按下事件上设置一个 ContextMenuStrip 来显示一个项,那么这个 ContextMenuStrip 将会被显示出来,但是我点击右键的那个项不会被选中。只有当我用左键点击时才能选择项目。
在 DataGridView 中,我可以使用 HitTest() 方法来检查当前位置上的项并选择它,然后显示 ContextMenuStrip。但不幸的是,在 ListBox 中没有 HitTest 方法。 是否有方法解决?
1个回答

8
您可以使用IndexFromPoint方法:
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
    int index = listBox1.IndexFromPoint(e.Location);
    listBox1.SelectedIndex = index;
}

感谢两件事情...快速正确地回答我的问题..让我感到愚蠢..我一直在寻找HitTest(),而这里却有IndexFromPoint。没有 MS 的标准编码方式。 - user915331

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接