Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo enlazar un control DataGrid a un objeto ArrayList de objetos o estructuras mediante Visual Basic 2005 o Visual Basic .NET

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): 316302
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 316303.
Resumen
En este artículo paso a paso describe cómo enlazar una ArrayList de objetos a un control DataGrid . El ejemplo consta de un formulario de Windows de Microsoft con un control DataGrid para mostrar los valores de propiedad de objeto y cuatro botones de comando para examinar las filas del control DataGrid .

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitará:
  • Microsoft Visual Basic 2005 o Microsoft Visual Basic .NET
En este artículo se supone que está familiarizado con los temas siguientes:
  • Conceptos de programación de Visual Basic

Diseñar la clase

Una clase que se va a enlazarse a un control debe tener descriptores de acceso. Cualquier propiedad que van a enlazarse debe tener métodos Property Set y Get de propiedad . La clase de ejemplo que se utiliza en este artículo tiene tres miembros (sólo se muestra aquí). Un constructor parametrizado también se ha proporcionado, pero no es un requisito.
Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    End Class				

Agregar instancias de clase a un objeto ArrayList

Para crear instancias y agregarlos a ArrayList , siga estos pasos:
  1. Declarar una ArrayList .
  2. Crear instancias de la clase y, a continuación, agregue las instancias a ArrayList .
Private al as New Arraylist()al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New guitar("Guild", "Bluesbird", 1971))				

Enlaza la ArrayList a DataGrid

Una vez que se ha rellenado la ArrayList , establecer la propiedad DataSource del control DataGrid a ArrayList . Las columnas en el control DataGrid se rellenan basándose en las propiedades para el que existen descriptores de acceso en el ámbito.
DataGrid1.DataSource = al				

Proporcionar un medio para examinar la ArrayList

Puede utilizar CurrencyManager para examinar la ArrayList . Para ello, asociar CurrencyManager BindingContext del control (en este caso, la ArrayList ).
Private cManager As CurrencyManagercManager = CType(DataGrid1.BindingContext(al), CurrencyManager)				
la clase CurrencyManager tiene una propiedad de posición que puede manipular para recorrer en iteración los miembros de ArrayList . Agregando o restando del valor actual de Position , puede examinar las filas del control DataGrid .
'Move forward one element.cManager.Position += 1'Move back one element.cManager.Position -= 1'Move to the beginning.cManager.Position = 0'Move to the end.cManager.Position = al.Count - 1				

Ejemplo paso a paso

  1. En Visual Basic2005 o en Visual Basic. NET, cree un nuevo proyecto de aplicación para Windows. Se creará Form1 de manera predeterminada.
  2. En el menú proyecto , haga clic en Agregar clase para agregar una clase al proyecto.
  3. Reemplace el código de Class1.vb con lo siguiente:
    Public Class guitar    Private m_make As String    Private m_model As String    Private m_year As Short    Public Sub New(ByVal make, ByRef model, ByVal year)        m_make = make        m_model = model        m_year = year    End Sub    Public Property make() As String        Get            Return m_make        End Get        Set(ByVal Value As String)            m_make = Value        End Set    End Property    Public Property model() As String        Get            Return m_model        End Get        Set(ByVal Value As String)            m_model = Value        End Set    End Property    Public Property year() As Short        Get            Return m_year        End Get        Set(ByVal Value As Short)            m_year = Value        End Set    End PropertyEnd Class					
  4. Cierre la ventana de código Class1.vb y, a continuación, cambie al diseñador de formularios.
  5. Agregue un control DataGrid a Form1. El tamaño del control DataGrid para adaptarse a cuatro columnas y tres filas.
  6. Agregue cuatro controles Button a Form1 y, a continuación, organiza los botones horizontalmente.
  7. Cambie la propiedad Text de Button1 a siguiente .
  8. Cambie la propiedad Text de Button2 al anterior .
  9. Cambie la propiedad Text de Button3 primero a.
  10. Cambie la propiedad Text de Button4 a último .
  11. Agregue el código siguiente a la clase Form1 :
    Private cManager As CurrencyManagerPrivate al as New ArrayList()					
  12. Pegue el código siguiente en el evento Form1_Load :
    al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New guitar("Guild", "Bluesbird", 1971))				cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)	DataGrid1.DataSource = al					
  13. Pegue el código siguiente después del procedimiento Form_Load :
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        cManager.Position += 1    End Sub    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        cManager.Position -= 1    End Sub    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click        cManager.Position = 0    End Sub    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click        cManager.Position = al.Count - 1    End Sub					
  14. Genere y ejecute el proyecto.
  15. Haga clic en los botones de comando para mover entre las filas del control DataGrid . Tenga en cuenta que puede modificar los valores de los objetos si lo desea.

Utilizando una estructura en lugar de una clase

Las reglas para enlazar una estructura son el mismo que las reglas para enlazar un objeto. Descriptores de acceso (es decir, el miembro) son necesarios. Una estructura que se crea para este propósito se asemeja a una clase.

Para enlazar a una ArrayList de estructuras, siga estos pasos:
  1. Cambiar la definición del módulo de clase de Class1.vb en el ejemplo de
    Public Class guitar'...End Class					
    al siguiente:
    Public Structure guitar'...End Structure					
  2. Crear y ejecutar el programa de ejemplo de nuevo y compruebe que funciona con una ArrayList de estructuras.
Referencias
Para obtener más información, vea el tema "Consumidores de datos en formularios Windows Forms" en la Ayuda de Visual Studio .NET en línea.

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 316302 - Última revisión: 12/06/2006 23:26:02 - Revisión: 3.3

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtes
Comentarios