.NET: Validar que introducimos números enteros en un TextBox (2ª parte), o como usar int.TryParse
Ayer veíamos como hacer que el TextBox admitiese sólo caracteres numéricos, pero… como bien nos indica Rafael Vargas en su comentario al post de ayer, se nos olvidó que, los chicus malos los hay por todas partes, y, aunque evitábamos el Ctrl-C Ctrl-V, no evitabamos el copiar-pegar que se realiza con el ratón, por lo que la TextBox podía contener caracteres alfanuméricos.
La solución viene por implementar el evento Validating del TextBox, utilizando para ello el método que aparece en la versión 2.0 de .NET FrameWork int.TryParse(string s, out int Result), el cual, Convierte la representación en forma de cadena de un número en el entero de 32 bits con signo equivalente. Un valor devuelto indica si la operación tuvo éxito. Usease, si lo que contiene el parámetro de tipo string s es un número, te devuelve dicho número en el parámetro de salida Result, en cambio, si no es un número, el parámetro de salido Result devolverá cero. A todo esto, int.TryParse() en un método estático de tipo booleano que devuelve true si s se convirtió correctamente; en caso contrario, false.
Resumiendo, en mi clase Utilidades, me he creado un método estático al que llamo desde el evento Validating del TextBox. El código del método estático es el siguiente:
public static string EsNumero(string MiTexto)
{
int Result = 0;
if(!int.TryParse(MiTexto, out Result))
MiTexto = "";
return MiTexto;
}
Ala, a seguir currando gañanes, que ya es viernes, iujuuuuu!!!! ;)









