2011-09-20 10 views
6

Sto tentando di aggiungere un menu di scelta rapida a una casella di riepilogo quando si fa clic con il pulsante destro del mouse su un elemento.WinForms ListBox Clic con tasto destro

Non sono nemmeno sicuro se la funzione del tasto destro funzioni correttamente.

Ecco il codice:

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

stampe nulla da console. Mi sto perdendo qualcosa?

Grazie.

+0

L'applicazione dispone di una console? Forse provare a mostrare un MessageBox invece? – AndrewC

risposta

10

Assicurarsi di cablare l'evento verso l'alto (e la ListBox è abilitato):

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

si può anche avere il filo progettista l'evento per voi selezionando il ListBox e fare doppio clic sul evento MouseDown nella finestra Proprietà (fare clic sul fulmine).

+0

Perfetto. Grazie! – gberg927

2

Console.WriteLine() il metodo non visualizza nulla sulla GUI. Utilizzare MessageBox.Show("Right Click");

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

EDIT: Assicurarsi che il gestore è attaccato con MouseDown evento o no.

+0

Ho provato la tua correzione e non succede ancora nulla. – gberg927

Problemi correlati