ProgramasVb6
  DriveListBox
 

DriveListBox - Propiedades, métodos y eventos

 

Descripción

El Control DriveListBox es una especie de comboBox o lista desplegable que nos muestra las unidades que tengamos en la pc

Vista previa del control Drive List Box de Visual basic que permite visualizar las unidades del sistema

 

Propiedades

Propiedad Drive

La propiedad mas importante de este control se llama Drive.

Esta propiedad nos retorna o devuelve la unidad que se encuentra seleccionada en el mismo.

Por ejemplo al ejecutar el siguiente fragmento de código, muestra la unidad mediante un cuadro de mensaje

Colocar el código en un formulario, e insertar un DriveListBox

  1. Option Explicit  
  2.   
  3. Private Sub Form_Load()  
  4.       
  5.     ' -- Mostramos la unidad que muestra el control mediante un mensaje  
  6.     MsgBox "Unidad que muestra el control Drive es: " & Drive1.Drive, vbInformation  
  7.       
  8. End Sub  

 

ListCount y objeto List

Otra propiedad para saber la cantidad de unidades que tiene la lista es la propiedad ListCount y conjuntamente con el objetoList podemos recorrer la lista mediante un bucle, por ejemplo desde la primera unidad hasta la última en la lista, similar a recorrer los elementos de un control de lista como los ListBox y los ComboBox.

El ejemplo siguiente hace lo anteriormente dicho en un bucle For, y las va mostrando mediante un Mensaje:

Colocar un control Drive1 en el formulario y un botón.

Pegar el siguiente código

  1. Option Explicit  
  2.   
  3.    
  4. '  -- Botón de comando para recorrer las unidades  
  5. Private Sub Command1_Click()  
  6.       
  7.     Dim i As Integer  
  8.     For i = 0 To Drive1.ListCount - 1  
  9.         ' -- Mostramos la unidad que corresponde al elemento  
  10.         ' -- de la propiedad List del Drive1  
  11.           
  12.         MsgBox "unidad: " & Drive1.List(i), vbInformation  
  13.   
  14.     Next  
  15.       
  16. End Sub  
  17.   
  18. Private Sub Form_Load()  
  19.     Command1.Caption = "Ver unidades"  
  20. End Sub  

 

 

Otras propiedades

Las demás propiedades son comunes a la mayoría de los demás controles, por ejemplo:

  • Propiedades de apariencia : Font y ForeColor para establecer atributos de fuente, BackColor para el color de fondo
  • Propiedades de comportamiento : Enabled para habilitar o no el control, Visible para mostrarlo u ocultarlo
  • Propiedades de posición: Height y Width para establecer y recuperar el ancho del objeto, y Left y Top para la posición izquierda y superior en el objeto que lo contiene ( un formulario, picturebox o control Frame)

 

A continuación un ejemplo para utilizar la propiedad Width. Muchas veces es necesario, en tiempo de ejecución, cambiar y adaptar la anchura del control, por ejemplo supongamos que al redimensionar y cambiar el ancho del formulario, quisiéramos adaptar el ancho del Drive al de la ventana de formulario, entonces podemos modificar la propiedad Width dentro del evento resize del Form.

Colocar un Drive1. Pegar el siguiente código. Luego maximizar, achicar, y cambiar el tamaño de la ventana para ver como se adapta a las dimensiones de la misma.

  1. Option Explicit  
  2.   
  3.   
  4. '  -- El evento resize ocurre cuando se muestra un formulario  
  5. '       por primera vez o cuando cambia el tamaño, ya sea mediante  
  6. '       el mouse o maximizando la ventana  
  7. ' ---------------------------------------------------------------------------------  
  8. Private Sub Form_Resize()  
  9.                   
  10.     ' -- Establecer la posición izquierda  
  11.     Drive1.Left = 10  
  12.     ' -- Establecer el ancho para que sea igual al del form  
  13.     Drive1.Width = Me.ScaleWidth - 20  
  14.       
  15. End Sub  

 

 

Importante

El código anterior contiene un error que es el siguiente. Si minimizas la pantalla de formulario, visual basic te mostrará este error:

Este error ocurre por que justo en el momento de minimizar el form, la propiedad ScaleWidth del Formulario contiene el valor 0. entonces al ejecutar la línea

Drive1.Width = Me.ScaleWidth - 20

Se está asignando como nuevo ancho del Drive, el valor ( 0 - 20 ) , es decir el valor -20. Y En visual basic, no se puede establecer un valor negativo a la propiedad Width y Height de ningún tipo de control.

Para solucionar esto, puede haber varias formas, por ejemplo podríamos utilizar un bloque If que compruebe que el valor a asignar sea mayor a 0.

  1. Private Sub Form_Resize()  
  2.                   
  3.     ' -- Establecer la posición izquierda  
  4.     Drive1.Left = 10  
  5.     ' -- Establecer el ancho para que sea igual al del form  
  6.       
  7.     ' -- Si esta operación (Me.ScaleWidth - 20), es mayor a 0, entonces si  
  8.     ' -- Cambiar el ancho, si no ignorar el bloque de código para que no genere error  
  9.     If (Me.ScaleWidth - 20) > 0 Then  
  10.         Drive1.Width = Me.ScaleWidth - 20  
  11.     End If  
  12.       
  13. End Sub  

 

Otra solución posible sería, dentro del evento Resize, averiguar si se está intentando minimizar la ventana usando la propiedad WindowState

WindowState: Devuelve o establece en tiempo de ejecución el estado visual de una ventana de formulario. Si está maximizada, minimizada o en estado normal.

Al ejecutar el siguiente ejemplo, podés comprobar que no se genera error, ya que la instrucción If, al detectar que se minimiza el formulario, sale de la rutina para no ejecutar el bloque de código que cambia el ancho del control, y de esta manera evitar el error.

  1. Option Explicit  
  2.   
  3. Private Sub Form_Resize()  
  4.                       
  5.     ' -- Si se minimiza el form, salir de la rutina  
  6.     ' -- para no ejecutar el código  de abajo ya que daría error  
  7.     If Me.WindowState = vbMinimized Then Exit Sub  
  8.       
  9.     Drive1.Left = 10  
  10.     Drive1.Width = Me.ScaleWidth - 20  
  11.       
  12. End Sub  

 

 

Eventos

El evento mas importante del control Drive es el evento Change.

Este evento se dispara o ejecuta cada vez que el control cambia la unidad, es decir cuando el usuario selecciona de la lista una unidad diferente. Para probarlo como funciona, un simple ejemplo:

Pegar este código, y cuando se seleccione una unidad, se producirá el evento Change y mostrará la unidad seleccionada, consultando la propiedad Drive

Colocar un Drive1 en el formulario principal.

  1. Option Explicit  
  2.   
  3.   
  4. '  -- Evento que Ocurre cuando cambia el contenido del Drive  
  5. Private Sub Drive1_Change()  
  6.     'Mostramos la unidad seleccionada  
  7.     MsgBox Drive1.Drive, vbInformation  
  8. End Sub  

 

 
  ProgramasVb Copyright. 2011-2012 All Right Reserved  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis