WinForms ListBox Щелкните правой кнопкой мыши

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

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

Вот код:

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

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

Спасибо.


person gberg927    schedule 20.09.2011    source источник
comment
В вашем приложении есть консоль? Возможно, вместо этого попробуйте показать MessageBox?   -  person AndrewC    schedule 20.09.2011


Ответы (2)


Убедитесь, что вы подключили событие (и 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 в окне свойств (щелкнув молнию).

person LarsTech    schedule 20.09.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 или нет.

person kv-prajapati    schedule 20.09.2011