WinForms ListBox Щелкните правой кнопкой мыши - PullRequest
6 голосов
/ 20 сентября 2011

Я пытаюсь добавить контекстное меню в список, когда вы щелкаете правой кнопкой мыши по элементу.

Я даже не уверен, работает ли функция щелчка правой кнопкой мыши правильно.

Воткод:

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

На консоль ничего не выводится.Я что-то упустил?

Спасибо.

Ответы [ 2 ]

11 голосов
/ 20 сентября 2011

Убедитесь, что вы подключили событие (и 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 голосов
/ 20 сентября 2011

Console.WriteLine() метод не будет отображать что-либо в графическом интерфейсе.Использовать MessageBox.Show("Right Click");

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

РЕДАКТИРОВАТЬ: убедитесь, что обработчик подключен с событием MouseDown или нет.

...