Cómo enlazar una ArrayList o una colección de estructuras a un formulario Windows Forms utilizando Visual Basic .NET o Visual Basic 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 313638 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso muestra cómo enlazar una ArrayList de estructuras a un formulario Windows Forms. El ejemplo incluye un formulario Windows Forms con tres cuadros de texto para mostrar los miembros de estructura y cuatro botones de comando para desplazarse por la ArrayList .

Requisitos

Microsoft Visual Basic .NET o Microsoft Visual Basic 2005

Descripción del código

Esta sección describen los conceptos de codificación importantes que son necesarios para completar esta tarea.

Diseñar la estructura

Una estructura que van a enlazarse a un formulario debe tener descriptores de acceso de miembro. Descriptores de acceso de miembro de estructura son prácticamente los mismos que el Conjunto de propiedades / obtener estructura que se encuentra en una clase. La estructura que se utiliza para el ejemplo de este artículo tiene tres miembros (sólo se muestra). Un constructor con parámetros también se proporciona pero no es necesario.
Private Structure guitar
    Friend mmake As String
    Friend mmodel As String
    Friend myear As Short

    Public Sub New(ByVal make, ByVal model, ByVal year)
        Me.mmake = make
        Me.mmodel = model
        Me.myear = year
    End Sub

    Public Property make() As String
        Get
            make = mmake
        End Get
        Set(ByVal Value As String)
            mmake = Value
        End Set
    End Property
End Structure
				

Agregar instancias de estructuras a un objeto ArrayList

T crear instancias y agregarlas a ArrayList , siga estos pasos:
  1. Declare una variable del tipo de la estructura.
  2. Declarar una ArrayList .
  3. Crear instancias de la estructura y, a continuación, agregarlos a ArrayList .
Private myStruct As guitar
Dim al As New ArrayList()

myStruct = New guitar("Gibson", "Les Paul", 1958)
al.Add(myStruct) 
myStruct = New guitar("Fender", "Jazz Bass", 1964)
al.Add(myStruct)
myStruct = New guitar("Guild", "Bluesbird", 1971)
al.Add(myStruct)
				

Enlazar a miembros de una estructura a controles de formulario

Una vez que la ArrayList se ha llenado, puede enlazar a los miembros individuales de la estructura a controles de formularios Windows Forms. Para ello, debe llamar al método Add de la propiedad Textbox DataBindings y pasar la propiedad que se va a enlazar, el nombre de ArrayList y miembro de la estructura.
TextBox1.DataBindings.Add("Text", al, "make")
TextBox2.DataBindings.Add("Text", al, "model")
TextBox3.DataBindings.Add("Text", al, "year")
				

Proporcionar una forma retrocede ArrayList

El paso final en el proceso es proporcionar una forma para desplazarse por la ArrayList . Para ello, debe utilizar un CurrencyManager . Asociar el CurrencyManager BindingContext , en este caso, la ArrayList de estructuras del formulario.
Private cMan As CurrencyManager

cMan = CType(Me.BindingContext(al), CurrencyManager)
				
el objeto CurrencyManager tiene una propiedad de posición que puede manipularse para recorrer en iteración los miembros de ArrayList . Agregando o restando del valor actual de Position , puede mostrar a miembros diferentes de ArrayList en el formulario.
'Move forward one element.
 cMan.Position += 1
'Move back one element.
cMan.Position -= 1
'Move to the beginning.
cMan.Position = 0
'Move to the end.
cMan.Position = al.Count - 1
				

Ejemplo paso a paso

  1. Abra un nuevo proyecto de aplicación para Windows en Visual Basic .NET o en Visual Basic 2005.
  2. Agregue tres cuadros de texto a Form1 y, a continuación, organizar los controles horizontalmente.
  3. Agregue cuatro botones de comando a Form1 y, a continuación, organizar los controles horizontalmente.
  4. Cambie la propiedad Text de Button1 a siguiente .
  5. Cambiar la propiedad Text de Button2 a anterior .
  6. Cambie la propiedad Text de Button3 a primero .
  7. Cambie la propiedad Text de Button4 a último .
  8. Agregue el código siguiente a la sección de declaración de Form1:
    Private Structure guitar
        Friend mmake As String
        Friend mmodel As String
        Friend myear As Short
    
        Public Sub New(ByVal make, ByVal model, ByVal year)
            Me.mmake = make
            Me.mmodel = model
            Me.myear = year
        End Sub
    
        Public Property make() As String
            Get
                make = mmake
            End Get
            Set(ByVal Value As String)
                mmake = Value
            End Set
        End Property
        Public Property model() As String
            Get
                model = mmodel
            End Get
            Set(ByVal Value As String)
                mmodel = Value
            End Set
        End Property
        Public Property year() As Short
            Get
                year = myear
            End Get
            Set(ByVal Value As Short)
    
    
            myear = Value
            End Set
        End Property
    End Structure
    
    Private myStruct As guitar
    Private al As New ArrayList()
    Private cMan As CurrencyManager
    					
  9. Agregue el código siguiente al evento Form_Load :
    myStruct = New guitar("Gibson", "Les Paul", 1958)
    al.Add(myStruct)
    myStruct = New guitar("Fender", "Jazz Bass", 1964)
    al.Add(myStruct)
    myStruct = New guitar("Guild", "Bluesbird", 1971)
    al.Add(myStruct)
    
    cMan = CType(Me.BindingContext(al), CurrencyManager)
    
    TextBox1.DataBindings.Add("Text", al, "make")
    TextBox2.DataBindings.Add("Text", al, "model")
    TextBox3.DataBindings.Add("Text", al, "year")
    					
  10. Agregue el código siguiente después del evento Form_Load :
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button1.Click
            cMan.Position += 1
    End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button2.Click
            cMan.Position -= 1
    End Sub
    
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button3.Click
            cMan.Position = 0
    End Sub
    
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button4.Click
            cMan.Position = al.Count - 1
    End Sub
    					
  11. Genere y ejecute el proyecto.
  12. Haga clic en los botones para mostrar distintos elementos de ArrayList . Tenga en cuenta que puede modificar los valores de los objetos.

Uso de una colección

Puede utilizar un objeto de colección para almacenar las estructuras. Para probar el uso de una colección , busque la siguiente línea de código en el procedimiento de evento Form_Load :
Private al As New ArrayList()
reemplazar la línea de código anterior con el código siguiente y vuelva a en el ejemplo:
Private al As New Collection()

REFERENCIAS

Consulte el tema siguiente en la documentación de Visual Studio .NET o la Ayuda en pantalla de Visual Studio. 2005:
Consumidores de datos en formularios Windows Forms

Propiedades

Id. de artículo: 313638 - Última revisión: lunes, 24 de febrero de 2014 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
Palabras clave: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB313638 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 313638

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com