viernes, 17 de julio de 2009

TextBox en un DataGridView

Ahora veremos como insertar TextBoxs en una columna de un DataGridView, esto nos sirve para hacer modificaciones en los datos insertados.

Primeramente crearemos un procedimiento donde se ingresaran 5 parametros :
Sub ColText(ByVal obj As DataGridViewTextBoxColumn,_
ByVal campo As String, ByVal nomtext As String,_
ByVal headertext As String, ByVal estado As Boolean)
If TypeOf obj Is DataGridViewTextBoxColumn Then
'enlazando un campo a la caja de texto
obj.DataPropertyName = campo
obj.Name = nomtext
obj.HeaderText = headertext
'aliniamiento de la celda de texto
obj.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
'especificando si la caja de texto esta en solo lectura o no
obj.ReadOnly = estado
Me.DataGridView1.Columns.Add(obj) ' agregando la columna
End If
End Sub


El parametro obj es un objeto de tipo DataGridViewTextBoxColumn, campo el nombre de campo de la tabla utilizada de la BD, nomtext es el nombre de de TextBox,headertext es la cabecera de la columna, estado es para ver si solo es de lectura.

Los metodos utilizados:
  • DataPropertyName : Sirve para mostrar los datos de un campo de una tabla de BD.
  • Name : Para guardar el nombre del TextBox
  • HeaderText : Para la cabecera de la columna
  • DefaultCellStyle.Alignment : Para la alineacion de los registros
  • ReadOnly : Para la lectura de datos(true o false)


Ahora vamos a ver el procedimiento donde agregamos las cajas de texto.
Try
'Habilitando a escritura
Me.DataGridView1.ReadOnly = False
Me.DataGridView1.DataSource = tbl
'Limpienado las columnas anteriores, para establecer las nuevas columnas
Me.DataGridView1.Columns.Clear()
'Agregando las columnas tipo texto al datagridview1
Dim objt1, objt2, objt3, objt4, objt5, objt6, objt7 As New_
DataGridViewTextBoxColumn
ColText(objt1, "Alu_cod", "txtcod", "Codigo", True)
ColText(objt2, "Alu_nom", "txtnombre", "Alumno", True)
ColText(objt3, "N1", "txtn1", "Nota 1", False)
ColText(objt4, "N2", "txtn2", "Nota 2", False)
ColText(objt5, "N3", "txtn3", "Nota 3", False)
ColText(objt6, "Promedio", "txtpp", "Promedio", True)
ColText(objt7, "estadoalumno", "txtestado", "Estado", True)
'Redimencionando las columnas
Me.DataGridView1.AutoResizeColumn(DataGridViewAutoSizeColumnMode._
AllCells)
Catch ex As Exception

End Try