WinForms ListBox右键单击

6

我正在尝试在单击鼠标右键时向列表框添加上下文菜单。

我甚至不确定右键单击功能是否正常工作。

以下是代码:

private void lstSource_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        Console.WriteLine("Right Click");
    }
}

什么都没有打印到控制台。我错过了什么吗?

谢谢。


你的应用程序有控制台吗?也许尝试使用MessageBox来代替? - AndrewC
2个回答

11

确保您将事件连接起来(且ListBox已启用):

private void Form1_Load(object sender, EventArgs e)
{
  listBox1.MouseDown += new MouseEventHandler(listBox1_MouseDown);
}

void listBox1_MouseDown(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Right)
  {
    MessageBox.Show("Right Click");
  }
}

你还可以让设计师为你连接事件,方法是选择ListBox并在属性窗口中双击MouseDown事件(点击闪电图标)。


2

Console.WriteLine() 方法不会在 GUI 上显示任何内容。请使用 MessageBox.Show("右键点击");

private void lstSource_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        MessageBox.Show("Right Click");
    }
}

编辑:请确保处理程序是否已与MouseDown事件附加。


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