canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  232

Manual de Inicio con Visual Basic: Arrays y controles

Indice Tutorial y Curso de Visual Basic
Frecuentemente es muy usual crear un conjunto de controles que pueden ser referidos por su nombre de control más su índice. De esta manera es posible:
  • Tener varios controles compartiendo el mismo código. Por ejemplo, podemos tener un conjunto de cajas de texto en la pantalla y querer seleccioar cada una de ellas. Esto se puede hacer creando una caja de texto como un arreglo y programar el evento MouseMove para seleccionar o deseleccionar el que deseamos. Con un arreglo (array) , todos los objetos en el arreglo responden a los eventos programados, solamente necesitas poner código en un elemento del arreglo para que todos lo tengan, así no es necesario duplicar código.

  • Tener un conjunto de controles para realizar una acción donde cada control esta relacionado con su posición en el arreglo. Por ejemplo en la calculadora hecha en VB, los botones de comandos representando los números de 0-9 fueron creados como un arreglo. La posición Indice (index) de cada botón de comando esta en correspondencia con la etiqueta de su Caption. Haciendo click en cualquiera de estos botones ejecutará la misma pieza de código, y el valor del índice se usa para mostrar el caracter apropiado del “0”-”9” que se leera en la caja de texto.


Como crer un control arreglo (array)

Es fácil hacer esto. Creamos el primer elemento en la forma normal usando la caja de herramientas. Supongamos que creamos una caja de texto llamada Text1. Ahora seleccionamos Text1 (dando clic en él) y escogemos copiar del menú Edit. En seguida sleccionamos Paste del mismo menú. VB deberá presentar una caja de díalogo diciendote que ya tienes un control con el mismo nombre y te pregunta si deseas crear un arreglo, si contestas YES estas creando el arreglo de dos elementos hasta este momento, si contestas NO se crea otro nuevo objeto. Al contestar YES y crear el arreglo con un nuevo elemento, inspecciona la ventana de propiedades de los dos objetos veras que las cajas se llaman Text1(0) y Text1(1); Al primer elemento en un arreglo de VB se le da el índice de 0. Continua creando tres cajas de texto más y ve sus índices.

Usando un control array

Lo más importante que tenemos que recordar cuando nos referimos a un arreglo (array) es su índice. Para usar un poco el control Array, aquí tenemos una pequeña pieza de código para un arreglo de cajas de texto que tu deberás crear.

Interface

Coloca el color amarillo en la propiedad forecolor de todas las cajas de texto. Esto se puede realizar dando clic en una parte de la forma y con el clic sostenido arrastrar el mouse hasta crear un rectángulo que encierre los objetos que deseas seleccionar, enseguida en la ventana de propiedades cambia el color (forecolor) como si lo hicieras para un objeto.


Comportamiento

Introduce el siguiente código en el evento click del botón de comando.:

  Sub Command1_Click ()
    Dim i As Integer

    For i = 0 To 4
      text1(i).BackColor = QBColor(i)
      text1(i).Text = i
    Next i
  End Sub

Ejecuta el programa y asegurate que entiendas lo que la aplicación esta haciendo.


Tareas

  1. Manten la misma interface que tienes arriba, pero elimina el botón de comando. Crea un panel 3D debajo de las cajas de texto (como una barra de estado). Usa la caja de herramientas para esto. Cambia el backcolor de todas las cajas de texto a gris. Programa el evento MouseMove de Text1() tal que:

    a) Cuando el mouse se mueva sobre las cajas de texto, el backcolor de la caja en cuestión cambie a color rojo y las otras a gris.

    b) El Panel 3D (el cual es usado como una barra de estatus) tenga un caption, el cual su valor será la caja de texto que se selecciono esto es, deberá aparecer por ejemplo,: “El mouse esta sobre el Text1(3)”.

    El encabezado para el procedimiento del evento MouseMove tiene en su lista de parámetros uno llamado index. Esto significa que VB captura el valor del indice actual (en la variable indexada) y éste valor te lo da para que puedas usarlo.

    Una forma para hacer la tarea 1 es la siguiente:

      Sub Text1_MouseMove (index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        Dim i As Integer      ' declara una variable para usarla como contador
    
        For i = 0 To 4        ' poerqu hay cinco cajas
          If i = index Then   ' Esta es la seleccionada
            text1(i).BackColor = QBColor(4)   ' rojo
          Else
            text1(i).BackColor = QBColor(8)   ' gris
          End If
        Next i
    
        panel3d1.Caption = "El  mouse ahora esta sobre el  Text1(" & index & ")"
      End Sub
    

    Sin embargo, si introduces texto en tus cajas de texto y pruebas la aplicación más a profundidad encontrarás que la pantalla parpadea. Esto es porque el código se ejecuta siempre que el mouse se mueva, no solamente cuando entra a una caja de texto.

  2. Modifica el programa de tal forma que cuando el cursor entre a una nueva caja de texto, esta caja se seleccione y la pcaja previa se deseleccione . Algo como esto:

      Sub Text1_MouseMove (index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        ' NOTA que  tbmax (significa la caja de texto de máximo indice) es una constante global declarada
        ' en el  module1.bas y tendra un valor de  4.
        ' prev es una variable global, declarada en  module1.bas e inicializada 
        ' en Form_Load y será  tbmax+1 (esto es  fuera de rango).
    
        If index <> prev Then    ' Aqui se hace un cambio de selección
          text1(index).BackColor = QBColor(4)     ' rojo
          If prev <= tbmax Then text1(prev).BackColor = QBColor(8)   ' gris
          prev = index   ' almacena el indice actual en  prev
          panel3d1.Caption = "El  mouse está ahora sobre Text1(" & index & ")"
        End If
    
      End Sub
    

    Las variables con alcance global serán declaradas en un módulo el cual es accesado por todas las partes del programa. Tal módulo es creado seleccionando Add Module del menú File.

    La sintaxis es :

      Global prev As Integer
      Global Const tbmax = 4
    
Visual Studio . VisualBasic.net . ADO.NET . ASP.NET . Framework . Crystal report
[ Visual Basic .NET ·  Información legal ·  Contacto ·  RSS novedades Foro ·  Inicio ]
© Copyright 2008 canalvisualbasic.net Ontecnia. Todos los derechos reservados
Ontecnia
Otros sitios web de Ontecnia
Programación en español, manuales, foros Descargar programas gratis Comentarios de libros y literatura Juegos gratis online, Juegos flash Videojuegos, trucos, avances y noticias de juegos Descargar programas gratis Noticias y resultados de fútbol