Cómo... en .NET |
Seleccionar un elemento de un ListBox al mover el ratónPublicado el 11/Jul/2006
|
Introducción:El código que te voy a mostrar es válido para cualquier versión de .NET Framework, y por tanto
para cualquier versión de Visual Basic y C#. Como los controles ListBox pueden tener elementos ocultos, es decir, que es posible que no se muestren todos, también tendremos en cuenta esos elementos ocultos, por tanto averiguaremos cual es el primer elemento mostrado, valor que podemos averiguar por medio de la propiedad TopIndex del ListBox. Otro detalle es que el alto de cada elemento puede variar, según el tipo de fuente, etc., ese dato también lo tendremos en cuenta, en este caso usaremos la propiedad ItemHeight que es la que nos indica ese valor. Para saber en que elemento está el cursor del ratón, lo primero que haremos es averiguar el valor de la posición Y del ratón, ese valor lo conseguimos desde el parámetro de tipo MouseEventArgs que tiene el evento MouseMove del ListBox. La posición del puntero del ratón dentro del ListBox lo averiguaremos por medio de la suma de
la posición Y del ratón, el valor Top del control y el alto de cada elemento: Una vez que sabemos el índice del elemento, lo asignaremos a la propiedad SelectedIndex y ya está todo.
Más abajo tienes el código de ejemplo para Visual Basic y para
C#. Para usar ese código, crea un nuevo proyecto de tipo Windows Forms (aplicación de Windows) y en el formulario añade un control ListBox y una etiqueta. Deja los mismos nombres y así podrás probarlo.
Espero que te sea de utilidad. Nos vemos. P.S. (24/Jul/06) Private Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) _ Handles ListBox1.MouseMove Me.ListBox1.SelectedIndex = Me.ListBox1.IndexFromPoint(e.Location) End Sub
Gracias Horacio.
Espacios de nombres usados en el código de este artículo:System.Windows.Forms |