Autor
|
Tema: Validar textbox numerico en C# (Leído 35,956 veces)
|
oscarj24
Desconectado
Mensajes: 65
|
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: private void soloNumeros(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Delete || e.KeyChar == (char)Keys.Left || e.KeyChar == (char)Keys.Right || IsNumber(e.KeyChar.ToString())) { TextBox obj = sender as TextBox; if (e.KeyChar == '.' && obj.Text.IndexOf('.') > 0) e.Handled = true; else e.Handled = false; } else e.Handled = true; }
|
|
|
En línea
|
|
|
|
Shell Root
|
Podes crear una expresión regular algo así: Reg-Exp: ^(?:\+|-)?\d+\.\d+$ PoC:
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
oscarj24
Desconectado
Mensajes: 65
|
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
|
Creo que eso es masomenos así, lo codee de memoria, así que puede tener errores. string strCadena = '-1.2'; string strRegExp = "^(?:\\+|-)?\\d+\\.\\d+$"; if (System.Text.RegularExpressions.Regex.IsMatch(strCadena, strRegExp)){ System.Console.WriteLine("Valido"); }else{ System.Console.WriteLine("Invalido"); }
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
oscarj24
Desconectado
Mensajes: 65
|
tiene errores jaja, perdoname pero no comprendo tu logica y bueno.. gracias de todas formas, aun asi no lo logre
|
|
|
En línea
|
|
|
|
Shell Root
|
wtf! apoco nunca haz usado expresiones regulares?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Keyen Night
Desconectado
Mensajes: 496
Nothing
|
oscarj24, Date una vuelta y vuelves ._. http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular.Si se te hace muy dificil entonces: string Comprobar = "Hola"; long Dft = 0; bool EsNumerico = long.TryParse(Comprobar, out Dft); 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
Mensajes: 22
Smart Device Development
|
Hola. No te entendi bien la pregunta, pero si lo q quiere es q solo ingrese double en el txtbox yo lo aria asi: 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
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
bool Validar Numero(string text) { return System.Text. RegularExpressions.Regex.IsMatch(text, @"^[+-]?\d+(?:\.\d+)?$"); }
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 private void soloNumeros(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Delete || e.KeyChar == (char)Keys.Left || e.KeyChar == (char)Keys.Right || int.TryParse(e.KeyChar.ToString()) { TextBox obj = sender as TextBox; if (e.KeyChar == '.' && obj.Text.IndexOf('.') > 0) e.Handled = true; else e.Handled = false; } else e.Handled = true; }
Espero que te sirva, lo hice todo al vuelo
|
|
|
En línea
|
|
|
|
oscarj24
Desconectado
Mensajes: 65
|
Hola, gracias.. pero preferi hacerlo a mi estilo pero al momento de la compilacion me salto un error en este punto: int.TryParse(e.KeyChar.ToString()))
ya que dice: 'Ninguna sobrecarga para el método 'TryParse' acepta '1' argumentos' espero me puedas ayudar y gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
triangulo numerico duda
Programación C/C++
|
cazagavilan
|
7
|
5,214
|
22 Julio 2011, 14:24 pm
por KaL3o
|
|
|
Array asociativo y numérico a la vez
PHP
|
pisagatos
|
0
|
2,411
|
7 Febrero 2012, 14:23 pm
por pisagatos
|
|
|
Rompecabezas numerico
Programación C/C++
|
erickgracia
|
3
|
3,314
|
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,774
|
15 Septiembre 2014, 08:39 am
por Eleкtro
|
|
|
Patron Bloqueo Numerico
Hacking Mobile
|
Mabus
|
5
|
4,013
|
22 Junio 2024, 16:24 pm
por Mabus
|
|