2011-11-16 15 views
6

En ListBox Control de Windows Forms, si configuro ContextMenuStrip para que se muestre en un evento MouseDown en un elemento, se mostrará ContextMenuStrip pero el elemento donde haga clic en el botón derecho no se seleccionará .. Los elementos se pueden seleccionar solo cuando hago clic con el botón izquierdo ...Seleccione un elemento en ListBox Control (WinForm & C#) en MouseDown Evento

En una vista DataGrid, puedo solucionarlo con el método HitTest() para verificar qué elemento está en el ubicación actual y luego selecciónela y luego muestre ContextMenuStrip. pero desafortunadamente en ListBox no existe el Método HitTest ...

¿Hay alguna manera?

Respuesta

7

Puede utilizar el método IndexFromPoint:

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

Gracias por dos cosas ... Para contestar a mí rápidamente y correctamente .. y por hacerme sentir estúpida .. yo estaba buscando HitTest() Si bien esta IndexFromPoint Was Threre .. No hay forma estándar de codificación de MS ... –

Cuestiones relacionadas