elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Validar textbox numerico en C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Validar textbox numerico en C#  (Leído 35,470 veces)
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Validar textbox numerico en C#
« en: 18 Abril 2010, 22:52 pm »

Hola, sere claro, tengo que validar un textbox, que solo acepte numeros en double. El problema está en que quiero escribir un real y debo poner el "." si es que se trata de un decimal o el signo "-" si es que es un numero negativo. Intente hacer un ejemplo pero tiene errores en la linea 6, aqui esta:

Código
  1. private void soloNumeros(object sender, KeyPressEventArgs e)
  2. {
  3. if (e.KeyChar == (char)Keys.Back
  4. || e.KeyChar == (char)Keys.Delete
  5. || e.KeyChar == (char)Keys.Left
  6. || e.KeyChar == (char)Keys.Right
  7. || IsNumber(e.KeyChar.ToString()))
  8. {
  9. TextBox obj = sender as TextBox;
  10.  
  11. if (e.KeyChar == '.' && obj.Text.IndexOf('.') > 0)
  12. e.Handled = true;
  13. else
  14. e.Handled = false;
  15. }
  16. else
  17. e.Handled = true;
  18. }
  19.  


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Validar textbox numerico en C#
« Respuesta #1 en: 18 Abril 2010, 23:17 pm »

Podes crear una expresión regular algo así:
Código:
Reg-Exp: ^(?:\+|-)?\d+\.\d+$
PoC:
Código:
-1.2
1.2


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Validar textbox numerico en C#
« Respuesta #2 en: 18 Abril 2010, 23:25 pm »

no entendi lo que quisiste explicarme, si puedes implementalo en el codigo que coloqué a ver si asi te comprendo mejor, gracias
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Validar textbox numerico en C#
« Respuesta #3 en: 18 Abril 2010, 23:31 pm »

Creo que eso es masomenos así, lo codee de memoria, así que puede tener errores.

Código
  1. string strCadena = '-1.2';
  2. string strRegExp = "^(?:\\+|-)?\\d+\\.\\d+$";
  3.  
  4. if (System.Text.RegularExpressions.Regex.IsMatch(strCadena, strRegExp)){
  5.   System.Console.WriteLine("Valido");
  6. }else{
  7.   System.Console.WriteLine("Invalido");
  8. }
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Validar textbox numerico en C#
« Respuesta #4 en: 19 Abril 2010, 00:19 am »

tiene errores jaja, perdoname pero no comprendo tu logica y bueno.. gracias de todas formas, aun asi no lo logre  :huh:
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Validar textbox numerico en C#
« Respuesta #5 en: 19 Abril 2010, 01:07 am »

wtf! apoco nunca haz usado expresiones regulares?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: Validar textbox numerico en C#
« Respuesta #6 en: 19 Abril 2010, 01:16 am »

oscarj24, Date una vuelta y vuelves ._.

http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular.

Si se te hace muy dificil entonces:
Código
  1.            string Comprobar = "Hola";
  2.            long Dft = 0;
  3.  
  4.            bool EsNumerico = long.TryParse(Comprobar, out Dft);
  5.  
  6.            MessageBox.Show(Convert.ToString(EsNumerico));

Donde EsNumerico es True si es numero y False si no es.
« Última modificación: 19 Abril 2010, 01:27 am por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
JuanRaGD

Desconectado Desconectado

Mensajes: 22


Smart Device Development


Ver Perfil
Re: Validar textbox numerico en C#
« Respuesta #7 en: 19 Abril 2010, 02:05 am »

Hola.
No te entendi bien la pregunta, pero si lo q quiere es q solo ingrese double en el txtbox  yo lo aria asi:

Código:
double numero = 0;
        try
        {
            numero = Convert.ToDouble(TextBox1.Text);
        }
        catch
        {
            Label1.Text = "numero invalido";
        }

Bueno espero que te sirva   :)
« Última modificación: 19 Abril 2010, 02:23 am por JuanRaGD » En línea

“La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no”
– Albert Einstein
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Validar textbox numerico en C#
« Respuesta #8 en: 19 Abril 2010, 03:28 am »

Código
  1. bool Validar Numero(string text) {
  2.   return System.Text. RegularExpressions.Regex.IsMatch(text, @"^[+-]?\d+(?:\.\d+)?$");
  3. }
  4.  

con eso validas la entrada, ahora si quieres validar "en vivo", usa un masked textbox o similar, o si quieres hacerlo a tu estilo puedes probar

Código
  1. private void soloNumeros(object sender, KeyPressEventArgs e)
  2. {
  3. if (e.KeyChar == (char)Keys.Back
  4. || e.KeyChar == (char)Keys.Delete
  5. || e.KeyChar == (char)Keys.Left
  6. || e.KeyChar == (char)Keys.Right
  7. || int.TryParse(e.KeyChar.ToString())
  8. {
  9. TextBox obj = sender as TextBox;
  10.  
  11. if (e.KeyChar == '.' && obj.Text.IndexOf('.') > 0)
  12. e.Handled = true;
  13. else
  14. e.Handled = false;
  15. }
  16. else
  17. e.Handled = true;
  18. }
  19.  

Espero que te sirva, lo hice todo al vuelo
En línea

oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Validar textbox numerico en C#
« Respuesta #9 en: 19 Abril 2010, 05:09 am »

Hola, gracias.. pero preferi hacerlo a mi estilo
pero al momento de la compilacion me salto un error en este punto:

Código
  1. int.TryParse(e.KeyChar.ToString()))

ya que dice:

'Ninguna sobrecarga para el método 'TryParse' acepta '1' argumentos'

espero me puedas ayudar y gracias  ;D
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
triangulo numerico duda
Programación C/C++
cazagavilan 7 4,974 Último mensaje 22 Julio 2011, 14:24 pm
por KaL3o
Array asociativo y numérico a la vez
PHP
pisagatos 0 2,311 Último mensaje 7 Febrero 2012, 14:23 pm
por pisagatos
Sabeis como programar o donde encontrar un textbox numérico como el de la imagen
Programación Visual Basic
P0wer_ 3 2,433 Último mensaje 12 Noviembre 2012, 19:50 pm
por seba123neo
Rompecabezas numerico
Programación C/C++
erickgracia 3 3,006 Último mensaje 9 Agosto 2014, 23:44 pm
por ivancea96
Validar varios textbox con un grado de complejidad adicional
.NET (C#, VB.NET, ASP)
fr3n3tic 1 2,607 Último mensaje 15 Septiembre 2014, 08:39 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines