Asegurarse de coger números correctos en un TextBox con las excepciones
Artículo por Club Developers · 09 mayo 2006
3266 vistas
En el Validating de o de los TextBox....
Para números reales:
Para números decimales:
No tenemos que olvidarnos de escribir el carácter separador decimal correcto:
Para números enteros:
Para números reales:
csharp
private void TextBox_Validating(object sender, CancelEventArgs e) { { TextBox T = ((TextBox)sender); try { Double.Parse(T.Text); epErrorProvider.SetError(T, ""); } catch (ArgumentNullException) { epErrorProvider.SetError(T, "¡Tiene que introducir un valor!"); T.SelectAll(); e.Cancel = true; } catch (OverflowException) { epErrorProvider.SetError(T, "Número demasiado grande"); T.SelectAll(); e.Cancel = true; } catch (FormatException) { epErrorProvider.SetError(T, "Formato incorrecto"); T.SelectAll(); e.Cancel = true; } } }
Para números decimales:
csharp
private void TextBox_Validating(object sender, CancelEventArgs e) { { TextBox T = ((TextBox)sender); try { Decimal.Parse(T.Text); epErrorProvider.SetError(T, ""); } catch (ArgumentNullException) { epErrorProvider.SetError(T, "¡Tiene que introducir un valor!"); T.SelectAll(); e.Cancel = true; } catch (OverflowException) { epErrorProvider.SetError(T, "Número demasiado grande"); T.SelectAll(); e.Cancel = true; } catch (FormatException) { epErrorProvider.SetError(T, "Formato incorrecto"); T.SelectAll(); e.Cancel = true; } } }
No tenemos que olvidarnos de escribir el carácter separador decimal correcto:
csharp
private void TextBox_KeyPress(object sender, KeyPressEventArgs e) { // almacenamos el separador decimal del sistema char Separador = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0]; // si se trata de un separador if ((e.KeyChar == '.') || (e.KeyChar == ',')) { // forzamos la escritura del separador correcto e.KeyChar = Separador; } }
Para números enteros:
csharp
private void TextBox_Validating(object sender, CancelEventArgs e) { { TextBox T = ((TextBox)sender); try { Integer.Parse(T.Text); epErrorProvider.SetError(T, ""); } catch (ArgumentNullException) { epErrorProvider.SetError(T, "¡Tiene que introducir un valor!"); T.SelectAll(); e.Cancel = true; } catch (OverflowException) { epErrorProvider.SetError(T, "Número demasiado grande"); T.SelectAll(); e.Cancel = true; } catch (FormatException) { epErrorProvider.SetError(T, "Formato incorrecto"); T.SelectAll(); e.Cancel = true; } } }


