2011-09-20 24 views
6

Estoy tratando de agregar un menú contextual a un cuadro de lista cuando hace clic derecho en un elemento.WinForms ListBox Haga clic con el botón derecho

Ni siquiera estoy seguro de si la función de clic derecho funciona correctamente.

Aquí está el código:

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

imprime nada a la consola. ¿Me estoy perdiendo de algo?

Gracias.

+0

¿Su aplicación tiene una consola? Tal vez intente mostrar un MessageBox en su lugar? – AndrewC

Respuesta

10

Asegúrese de que conecte el evento (y el cuadro de lista está activada):

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"); 
    } 
} 

También puede hacer que el alambre de diseñador hasta el evento para usted seleccionando el cuadro de lista y haga doble clic en el evento MouseDown en la ventana Propiedades (haz clic en el rayo).

+0

Perfecto. ¡Gracias! – gberg927

2

Console.WriteLine() El método no muestra nada en la GUI. Utilice MessageBox.Show("Right Click");

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

EDIT: Asegúrese de que el controlador está conectado con MouseDown evento o no.

+0

Intenté su corrección y todavía no sucede nada. – gberg927

Cuestiones relacionadas