Sección de tutoriales y manuales vb

Control CommandButton - botón de comando

Volver al índice



 

 

 

Ejemplos básicos sobre el control CommandButton de visual basic

 

 

 

 

 

 

-- -- Indice - Contenido

 

 

 


Descripción del control

Este control " Botón de comando ", nos permite ejecutar alguna rutina, función o procedimiento, generalmente en el evento click del mismo, para realizar de esta manera alguna tarea dentro del programa

 

Como se dijo, se utiliza generalmente en el evento Click par ejecutar alguna acción cuando se produce dicho evento, y es precisamente el evento Click, el que por defecto añade Visual Basic al control

Por ejemplo, si colocamos un control Command1 en un formulario, y le damos DobleClick para que se abra la ventana de código de visual basic, podemos ver la siguiente rutina:

Todas las instrucciones que estén dentro de este procedimiento, llamado Command1_Click, se ejecutarán cuando presionemos el botón. Por ejemplo si ejecutamos el siguiente código, lo que haría sería mostrar la fecha del sistema en la barra de título del formulario, utilizando la función Date de Visual Basic

Este otro ejemplo, al presionar el botón, termina el programa utilizando la función End de vb. Colocar un Botón en el form

 


Propiedades

Las propiedades que posee el control CommandButton son prácticamente las que poseen el resto de controles estandar de visual basic, salvo algunas exclusivas como la propiedad Style.

Propiedad Style

La propiedad Style tiene 2 valores, 0 - Standar y 1 - Graphical. La primera es del clásico botón y este valor es el asignado por defecto. En cambio Graphical permite utilizar CommandButton para poder mostrar imágenes, cambiarle el color del fondo, el tipo de fuente, y utilizando el Api de windows, se puede cambiar por ejemplo el color de la fuente, es decir el ForeColor que este control no lo posee.

Esta imagen muestra, en el Command1 , una imagen, por medio de la propiedad Picture que la puedes cargar desde la ventana de propiedades. El segundo, el Command2, no tiene imagen, pero muestra como se puede establecer el color de fondo, propiedad Backcolor, siempre y cuando la propiedad Style sea de tipo gráfico, ya que si está en estándar no surtirá efecto.

Propiedad Style de los botones de comando

 

Otro ejemplo sobre esta propiedad: Al pasar el mouse por encima del Commandbutton, se cambiará la fuente, en Negrita, el Subrayado, y el color de fondo, al salir el puntero fuera del botón, se reestablecerá a la fuente normal, y se restaurará el color de fondo usando el color por defecto que utiliza windows para los botones, mediante la constante VbButtonFace

Para el ejemplo, colocar un Command1, colocar la propiedad Style en Graphical y pegar estas líneas en el formulario:

Propiedad Default

Esta propiedad es muy útil en ciertas locaciones, sobre todo en formularios y programas que utilizan bases de datos, y opciones para buscar.

Default puede tener dos valores , True o False. Si está en True, el botón será el botón por defecto que se ejecutará cuando se presione la tecla enter. Por ejemplo hagamos de cuenta que nuestro programa contiene un botón. Ese botón ejecuta un código para buscar datos en una base de datos. Si el usuario en un momento determinado, se encuentra escribiendo datos en un control textbox, y presiona la tecla Enter, el CommandButton al tener la propiedad Default en True, ejecutará el código que tenga en el evento click. En este caso , en el evento clic, contendría todo el código para realizar la búsqueda de registros.

Un simple ejemplo

Coloca: Un control TextBox, un CommandButton. Pega el siguiente código

 

Propiedades de posición

Las propiedades de posición son las que permiten cambiar el tamaño y la posición en el objeto que lo contiene. estas propiedades son cuatro : Left, Top, Height y Width.

El siguiente ejemplo muestra como usar estas propiedades. Supongamos que nuestro formulario contiene un botón "Salir" en la parte inferior:

Ahora bien ¿ como hacer para que al presionar el botón de maximizar del formulario o cambiar de tamaño el formulario, el botón continúe situado en la esquina inferior derecha ? Para ello hay que modificar la propiedad Left y Top del botón. ¿ Pero donde colocar el código? para ello se debe colocar en el evento Resize del formulario.

Puedes probar este simple ejemplo con el siguiente código:

 

Propiedad Enabled

Esta propiedad lo que hace es habilitar o deshabilitar el botón. Es una propiedad que la poseen casi todos los controles, tanto los de Visual basic, como otros controles de terceros ( controles ocx o Activex )

Aquí puedes ver ver un pequeño ejemplo de su uso.

Supongamos que nuestro programa contiene un un control de texto donde se ingresan datos para buscar registros en una base de datos. Y también tenemos un botón que contiene el código que debe ejecutar para realizar la búsqueda dentro de la base de datos. Si en algún momento el control de texto no contiene datos, es decir no contiene texto valga la redundancia, no sería necesario que el botón se encuentre habilitado, por el contrario, deberíamos deshabilitarlo.

Puedes probar este simple ejemplo, colocando un control Textbox , un botón y pegando el siguiente código en el formulario principal

 

Modificar propiedades de varios controles

Si en el algún momento se necesita, por ejempo, habilitar o deshabilitar todos los botones que hay en el formulario, o por ejemplo camabiarle y establecerle otras propiedades que se deseen, puedes utilizar un bucle For Each para recorrer todos los controles del formulario,y utilizando el operador TypeOf de Visual basic, comprobar si el control dentro del bucle es de tipo CommandButton.

Nota. El ejemplo no tiene ninguna utilidad especifica, solo muestra el uso del ejemplo.

Debes colocar dos controles textBox. Text1 y Text2, y todos los botones que desees, por ejemplo 4 como mustra la imagen de abajo

Al colocar el cursor en el Text1 se habilitarán todos los botones, luego al colocar el cursor en el Text2, es decir cuando recibe el foco, se deshabilitarán todos los botones.

 

Propiedad MousePointer y Mouseicon

Estas dos propiedades son muy simples de usar y son comunes a la mayoría de objetos y controles de vb

Mousepointer devuelve o establece el tipo de puntero del mouse mostrado al pasar por encima de un objeto

MouseIcon establece un icono personalizado para el mouse

Ejemplo. Colocar un control ListBox y un botón. Pegar el siguiente código fuente en el formulario


Métodos y funciones

Este control prácticamente no contiene métodos o funciones. El mas importante y el mas utilizado es el método SetFocus, que también lo posen muchos otros controles.

Lo que hace el método setFocus, es poder establecer el enfoque a un objeto especifico, en este caso al botón. Su uso es muy simple, solo basta con ejecutarlo desde alguna parte de nuestro programa para que el Commandbutton pase a tener el foco.

Una cosa muy importante a tener en cuenta , es que para poder establecer el foco a cualquier control de visual basic, el objeto se debe encontrar visible, y también se debe encontrar habilitado. Es decir, si la propiedad Visible o la propiedad Enabled del objeto se encuentran en False, esto producirá un error en tiempo de ejecución. Por ello siempre se debe colocar una rutina de error para poder controlar esto, o comprobando estas propiedades mediante una instrucción If Then

Para recrear este error puedes ejecutar este código

Coloca dos botones

Para solucionarlo, simplemente puedes hacer algo asi

Colocar dos botones

 


Eventos principales del control CommandButton

Aparte del evento Click que se ejecuta cuando lo presionamos, otros eventos importantes son:

 

Por ejemplo para probar el uso de los métodos GotFocus y LostFocus (recibe y pierde el foco) colocar 3 CommandButton, Command1, Command2 y Command3. Luego un Label1 que mostrará el control que recibe el foco (GotFocus) y un Label2 que mostrará el control que pierde el foco (LosFocus)

Luego de añadir los controles pegar el código siguiente en el formulario

 

Nota: en la ventana de código podés ver que tenés 2 combos o listas desplegables:

Vista previa del evento gotfocus del commandbutton

 

El combo de la izquierda muestra los objetos que tiene el formulario, es decir los controles, rutinas y funciones, y la lista de la derecha los eventos y métodos del objeto seleccionado en la lista izquierda.

En la captura del ejemplo anterior, se puede ver que cuando el cursor se encuentra dentro de la ventana de código está situado en un procedimiento determinado, las listas se actualizan mostrándote dicho objeto, por ejemplo el cursor está en el control u objeto llamado Command3 en el evento Gotfocus, y las listas desplegables muestran esto mismo.

Siguiendo el ejemplo anterior, para escribir código en el evento MouseMove del Command1 para que muestre un mensaje cuando pasa el mouse encima del botón, se tendría que seleccionar de la lista izquierda el Command1 de esta forma:

 

 

y después seleccionar el evento que se quiera utilizar disponible en el otro combo desplegable, en este caso el MouseMove

Vista previa del evento MouseMove del commandbutton

 

Al hacer esto en la ventana de código visual basic te agrega un procedimiento vacío:

 

Vista del procedimiento MouseMove que crea visual basic para los controles CommandButton

 

Ahora el código que escribas dentro de este procedimiento se va a disparar cada vez que pases el mouse encima del Command1. Por ejemplo para mostrar un mensaje con la función MsgBox cada ves que pases el puntero encima, agrega lo siguiente:

 


Tomar la apariencia de los temas de windows para los botones

Por defecto el aspecto de los botones, no toma la apariencia del tema que tenga activo windows. Para poder hacer que los botones y el resto de los controles tengan la tengan, se puede utilizar un archivo Manifest.

En el siguiente enlace puedes ver un ejemplo de como implementarlo:

Tomar la apariencia de los temas de windows para los controles del programa

 


Enlaces relacionados


 

 

 


Buscar en Recursos vb