¿Solo Números, en una celda del Datagrid?

17/10/2006 - 21:57 por Diego | Informe spam
Amigos neesito saber como puedo hacer para hacer que el usuario solo pueda
digitar números dentro de cualquier celda de una misma columna?

Por ejemplo que en la columna donde dice telefono solo me permita digitar
números..

Saludos Diego Román

Preguntas similare

Leer las respuestas

#1 Roberto
18/10/2006 - 15:16 | Informe spam
En el evento KeyPress del DataGrid:

if grd.CurrentCell.ColumnIndex = lacolumnaquequierescontrolar then
if Not IsNumeric(e.KeyChar) Then
e.Handled=True
EndIf
EndIf

"Diego" wrote:

Amigos neesito saber como puedo hacer para hacer que el usuario solo pueda
digitar números dentro de cualquier celda de una misma columna?

Por ejemplo que en la columna donde dice telefono solo me permita digitar
números..

Saludos Diego Román
Respuesta Responder a este mensaje
#2 SoftJaén
18/10/2006 - 16:53 | Informe spam
"Diego" preguntó:

como puedo hacer para hacer que el usuario solo pueda
digitar números dentro de cualquier celda de una misma
columna?



Hola, Diego:

Para conocer la tecla que se presionó dentro de un control DataGrid, deberás
reemplazar la función «ProcessCmdKey», de ésta manera la función será
llamada por cualquier control que te permita escribir texto, como por
ejemplo, un control TextBox. Si solamente deseas que sea llamada cuando se
pulse una tecla en el control DataGrid, declara una variable Boolean a nivel
de la propia clase Form, la cual deberá tener el valor True, cuando el foco
lo tenga el control DataGrid, y False, cuando el foco pase a otro control.

Inserta en la clase Form donde se encuentre el control DataGrid, el
siguiente código fuente:

Private IsDataGridFocused As Boolean

Protected Overrides Function ProcessCmdKey( _
ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean

' Si el control DataGrid no tiene el foco,
' abandonamos la función.
'
If Not IsDataGridFocused Then Return False
' La función procesará una tecla, reemplazando al
' método de la clase base.
'
' Comprobamos si la tecla presionada es un dígito.
'
If Char.IsDigit(Convert.ToChar(keyData)) = False Then
' Anulamos la pulsación de la tecla.
'
Return True
End If

End Function

Para establecer el valor de la variable «IsDataGridFocused», puedes hacerlo
en los eventos «Enter» (True) y «Leave» (False) del control DataGrid.

Si por casualidad necesitas controlar otros caracteres, échale un vistazo al
siguiente enlace:

Overriding a Control’s ProcessCmdKey Function
http://getdotnetco.web119.discounta...nction.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#3 Diego
18/10/2006 - 17:58 | Informe spam
Ya lo inserte el código que me pasates dentro del evento keypress del
datagridview pero al momento de digitar no llama al evento ???? no esta
funcionando???
Por que pasa esto??? o aguna otra solución ????


Mil gracias de antemano

Diego...



"Roberto" wrote:

En el evento KeyPress del DataGrid:

if grd.CurrentCell.ColumnIndex = lacolumnaquequierescontrolar then
if Not IsNumeric(e.KeyChar) Then
e.Handled=True
EndIf
EndIf

"Diego" wrote:

> Amigos neesito saber como puedo hacer para hacer que el usuario solo pueda
> digitar números dentro de cualquier celda de una misma columna?
>
> Por ejemplo que en la columna donde dice telefono solo me permita digitar
> números..
>
> Saludos Diego Román
Respuesta Responder a este mensaje
#4 SoftJaén
18/10/2006 - 18:43 | Informe spam
"Diego" preguntó:

Ya lo inserte el código que me pasates dentro del evento
keypress del datagridview pero al momento de digitar
no llama al evento ???? no esta funcionando???
Por que pasa esto??? o aguna otra solución ????



Lo que ocurre es que el evento KeyPress del control DataGrid, no funciona
como en un principio cabría de esperar. La solución la tienes en la
respuesta que te he enviado anteriormente.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida