validaciones en celda de grid

17/01/2005 - 12:26 por Racsus | Informe spam
Hola

quiero que cuando el usuario inserte datos en una celda
del grid me salte directamente a una funcion (la del
keypress del textbox), pero en el objeto grid no existe
este evento, existe pero para el grid en si, no para las
celdas del grid. como lo hago?

saludos

Preguntas similare

Leer las respuestas

#1 Imac_Man
17/01/2005 - 15:34 | Informe spam
ok, no se si es la mejor forma de hacerlo, pero en mi caso me permite
trabajar de una forma mas controlada de los grids.

te sugiero que le pegues a tu grid un tablesyle y luego le pegues los
eventos que quieraste muestro un codigo de ejemplo, la idea sera la
siguiente imaginate que este codigo se lo pegamos a un form en su load

-1- Primero nos creamos una funcion que emplearemos desde el fom load...no
es nada complicado

Public function FormatoTabla( Ds as DataSet) as DataGridTableStyle
dim Columna as new datagridtextboxColumn
dim Tabla as new DataGridTableStyle

Tabla = new DatagridTableStyle
Tabla.mappingname = Ds.Table(0).tablename.tostring

Columna = new DataGridTextBoxColumn
Columna.mappingname = "Codigo_producto"
Columna.headertext = "Codigo"
Columna.Width = 70
Columna.NullText = ""
Tabla.GridColumnStyles.Add(Columna)

Columna = new DataGridTextBoxColumn
Columna.mappingname = "Nombre_producto"
Columna.headertext = "Nombre"
Columna.Width = 200
Columna.NullText = ""
Tabla.GridColumnStyles.Add(Columna)

Dim MiEventoKeyPress As DataGridTextBoxColumn =
CType(Tabla.GridColumnStyles("Nombre_producto"), DataGridTextBoxColumn)
AddHandler MiEventoKeyPress.TextBox.KeyPress, AddressOf
SubrutinaKeyPress

Return Tabla
End function

-2- ok ahora nos creamos la subrutina o procedimiento que capturara el
evento keypress

Private Sub SubrutinaKeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs)
Aqui le metes tu codigo
End sub

-3-ok ahora nos vamos al form load (esto del form load es solo de nuestro
ejemplo tu lo puedes poner donde quieras...ok)

dim Conexion as new sqlclient.sqlconnection("Server=local;" &
"DataBase=Northwind;" & "Integrated Security=SSPI")
dim MiDataSet as new dataset
dim Comando as new sqlclient.sqlcommand
dim Adaptador as new sqlclient.sqldataadapter

Comando.commandtext = "select * from products"
Comando.conection = Conexion
Adaptador.selectedcommand = Comando
Adaptador.fill(MiDataSet)

DataGrid1.datasource = MiDataSet.tables(0)
DataGrid.AddTableStyle( FormatoTabla(MiDataSet))

codigo de arriba.si tienes alguna duda o alguien tiene una mejor tecnica
le -agradeceria me contara

Saludos



"Racsus" escribió en el mensaje
news:1f8f01c4fc87$68dc2960$
Hola

quiero que cuando el usuario inserte datos en una celda
del grid me salte directamente a una funcion (la del
keypress del textbox), pero en el objeto grid no existe
este evento, existe pero para el grid en si, no para las
celdas del grid. como lo hago?

saludos
Respuesta Responder a este mensaje
#2 Racsus
17/01/2005 - 17:13 | Informe spam
Gracias amigo

ok, no se si es la mejor forma de hacerlo, pero en mi


caso me permite
trabajar de una forma mas controlada de los grids.

te sugiero que le pegues a tu grid un tablesyle y luego


le pegues los
eventos que quieraste muestro un codigo de ejemplo,


la idea sera la
siguiente imaginate que este codigo se lo pegamos a un


form en su load

-1- Primero nos creamos una funcion que emplearemos desde


el fom load...no
es nada complicado

Public function FormatoTabla( Ds as DataSet) as


DataGridTableStyle
dim Columna as new datagridtextboxColumn
dim Tabla as new DataGridTableStyle

Tabla = new DatagridTableStyle
Tabla.mappingname = Ds.Table(0).tablename.tostring

Columna = new DataGridTextBoxColumn
Columna.mappingname = "Codigo_producto"
Columna.headertext = "Codigo"
Columna.Width = 70
Columna.NullText = ""
Tabla.GridColumnStyles.Add(Columna)

Columna = new DataGridTextBoxColumn
Columna.mappingname = "Nombre_producto"
Columna.headertext = "Nombre"
Columna.Width = 200
Columna.NullText = ""
Tabla.GridColumnStyles.Add(Columna)

Dim MiEventoKeyPress As DataGridTextBoxColumn =
CType(Tabla.GridColumnStyles("Nombre_producto"),


DataGridTextBoxColumn)
AddHandler MiEventoKeyPress.TextBox.KeyPress,


AddressOf
SubrutinaKeyPress

Return Tabla
End function

-2- ok ahora nos creamos la subrutina o procedimiento que


capturara el
evento keypress

Private Sub SubrutinaKeyPress(ByVal sender As Object,


ByVal e As
System.Windows.Forms.KeyEventArgs)
Aqui le metes tu codigo
End sub

-3-ok ahora nos vamos al form load (esto del form load es


solo de nuestro
ejemplo tu lo puedes poner donde quieras...ok)

dim Conexion as new sqlclient.sqlconnection


("Server=local;" &
"DataBase=Northwind;" & "Integrated Security=SSPI")
dim MiDataSet as new dataset
dim Comando as new sqlclient.sqlcommand
dim Adaptador as new sqlclient.sqldataadapter

Comando.commandtext = "select * from products"
Comando.conection = Conexion
Adaptador.selectedcommand = Comando
Adaptador.fill(MiDataSet)

DataGrid1.datasource = MiDataSet.tables(0)
DataGrid.AddTableStyle( FormatoTabla(MiDataSet))



quierassegun el
codigo de arriba.si tienes alguna duda o alguien


tiene una mejor tecnica
le -agradeceria me contara

Saludos



"Racsus" escribió


en el mensaje
news:1f8f01c4fc87$68dc2960$
Hola

quiero que cuando el usuario inserte datos en una celda
del grid me salte directamente a una funcion (la del
keypress del textbox), pero en el objeto grid no existe
este evento, existe pero para el grid en si, no para las
celdas del grid. como lo hago?

saludos




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida