Haciendo un ejemplo de Julio sobre TableView y GridView. Se me ocurrió que se podía obtener
el mismo resultado haciéndolo de distintas formas.
En el mismo formulario existe un GridView y un TableView de esta forma:
Forma original.
Todo el código en el formulario principal. Para un ejemplo no esta mal ya que lo se trata es explicar
el funcionamiento y verlo funcionar sin mas.
Ahora se me ocurrió de que se podía crear un modulo para cada uno de los controles y llamarlo.
Pero yo no quería a penas código en el formulario.
Entonces en un modulo que trabaje con el GridView podría tener algo así:
Public Function DefinirGridView(grd As GridView) As GridView
With grd
.Header = GridView.Both
.Rows.Count = 10
.Columns.Count = 3
.Columns[0].Title = "Primera Columna"
.Columns[1].Title = "Segunda Columna"
.Columns[2].Title = "Tercera Columna"
.Columns[0].Width = 120
.Columns[1].Width = 120
.Columns[2].Width = 120
.Font.Name = "Sans"
.Font.Size = 9
.Background = 16777215
.Foreground = 0
End With
Return grd
End
Public Function RellenarGridView(grd As GridView) As GridView
Dim a, b As Integer
For a = 0 To grd.Rows.Max
For b = 0 To grd.Columns.Max
grd[a, b].Text = "Celda: " & Str(a) & " " & Str(b)
Next
Next
Return grd
End
With grd
.Header = GridView.Both
.Rows.Count = 10
.Columns.Count = 3
.Columns[0].Title = "Primera Columna"
.Columns[1].Title = "Segunda Columna"
.Columns[2].Title = "Tercera Columna"
.Columns[0].Width = 120
.Columns[1].Width = 120
.Columns[2].Width = 120
.Font.Name = "Sans"
.Font.Size = 9
.Background = 16777215
.Foreground = 0
End With
Return grd
End
Public Function RellenarGridView(grd As GridView) As GridView
Dim a, b As Integer
For a = 0 To grd.Rows.Max
For b = 0 To grd.Columns.Max
grd[a, b].Text = "Celda: " & Str(a) & " " & Str(b)
Next
Next
Return grd
End
Como veis en el caso del GridView solo se va a "mostrar" datos.
Pero en cambio si trabajo con el TableView y quisiera crear un modulo.
Parte de los eventos del control tengo que hacerlo en el formulario. ¿ Verdad ?.
Ya que en el TableView voy a usar:
- Click
- Save
Eso no lo puedo poner en el modulo.
Volvemos a situar parte de código en el modulo y algo más en el formulario principal.
Así que digo. Voy a heredar un tableview y crear una clase.
Dicho y hecho.
Quedando casi tres o cuatro líneas en el formulario que maneja el TableView.
Pero ahora bien. Ahora viene la pregunta!.
Y si yo en vez de crear de cero el TableView con una clase.
Quisiera pasarle a esa clase mi objeto que tengo en el formulario.
Y esta clase me devuelva el objeto con unas propiedades fijas en la clase.
¿ Eso es posible ?
¿ Es una forma adecuada ?.
Saludos