Para este caso lo que puedes hace es recorrer el string de lo que se escribió y comparar los caracteres o aplicar el evento KeyDown, el cual ni siquiera permite que se escriba todo lo ajeno a lo que definas. Este código no deja escribir más que números:
private void tbMovil_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) e.Handled = false; else e.Handled = true; }Y éste te deja escribir la coma "," porque en mi caso es el separador decimal.
private void tbPrecio_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) e.Handled = false; else if (e.Key == Key.OemComma) e.Handled = false; else e.Handled = true; }
Si estás seguro que es el punto usa este. Además, está validado que sólo deje introducir sólo un punto decimal ( "." = Key.OemPeriod).
La variable puntos es global.
private void tbPrecio_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) e.Handled = false; else if (e.Key == Key.OemPeriod) { if (puntos == 0) { e.Handled = false; puntos = 1; } else { e.Handled = true; } } else e.Handled = true; }
Cómo saber si debo usar la coma "," o el punto "." como separador decimal por código
Yo sabía que era la coma porque el sistema es para inglés gringo y por lo tanto en el código anterior sólo deja escribir la coma y no el punto pero podrías saber cuál se usa en la región que sea en la que se use el sistema con:string decimalSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; string numero = tbPrecio.Text.TrimEnd(' '); ; numero.Replace(".",decimalseparator); //Aquí se remplaza el punto por el separator que está en uso según la regiónPor supuesto debes tener cuidado en caso de que lo vayas a guardar en SQL ya que igual debes usar el formato que SQL pide según lo hayas definido.
No hay comentarios:
Publicar un comentario