2011-11-16 11 views
6

Nel controllo ListBox di Windows Form, se si imposta un ContextMenuStrip per essere mostrato su un evento MouseDown su un oggetto, viene visualizzato ContextMenuStrip ma l'elemento in cui I fare clic con il tasto destro non sarà selezionato .. Gli articoli possono essere selezionati solo quando clicco con il tasto sinistro ..Selezionare un elemento in controllo ListBox (WinForm & C#) su evento MouseDown

In una vista DataGrid posso risolvere il problema con il metodo HitTest() per verificare quale elemento si trova sul posizione corrente e quindi selezionarlo e quindi mostrare il ContextMenuStrip. ma sfortunatamente in ListBox non esiste il metodo HitTest ..

C'è un modo?

risposta

7

È possibile utilizzare il metodo IndexFromPoint:

private void listBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    int index = listBox1.IndexFromPoint(e.Location); 
    listBox1.SelectedIndex = index; 
} 
+0

Grazie per due cose ... Per me rispondere rapidamente e correttamente .. e per avermi fatto sentire stupido .. Cercavo HitTest() Anche se questo IndexFromPoint Was Threre .. Nessun modo standard di codifica da MS .. –

Problemi correlati