Para limitar Textbox en C#, poner el trozo de código o "snipet code" del método que escoja en el evento KeyPress según se necesite.Comparto varios métodos, utilizar el que mas le guste o convenga:
1er Método
//Aceptar solo números y UN punto decimal en Textbox (poner en el evento KeyPress)
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// Sólo permitir un punto decimal:
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
2do Método // (Particularmente este es el método que más me gusta por simple y específico)
//Aceptar solo números, Coma, punto, y el BackSpace en un Textbox
if (char.IsDigit(e.KeyChar) == true)
{ }
//Codigo Ascii para el punto
else if (e.KeyChar == 46)
{ }
//codigo Ascii para la coma
else if (e.KeyChar == 44)
{ }
//Codigo Ascii para el Backspace
else if (e.KeyChar == '\b')
{ }
else
{ e.Handled = true; }
3er Método:
//Aceptar solo letras y backspace en un TextBox
private void txtCaracter_KeyPress(object sender, KeyPressEventArgs e)
{
if (!(char.IsLetter(e.KeyChar)) && (e.KeyChar != (char)Keys.Back))
{
MessageBox.Show("Solo se permiten letras", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
e.Handled = true;
return;
}
}
4to Método:
//Sólo letras en el TextBox
if (Char.IsLetter(e.KeyChar))
{
e.Handled = false;
}
else if (Char.IsControl(e.KeyChar))
{
e.Handled = false;
}
else if (Char.IsSeparator(e.KeyChar)) //Permitir Espacio
{
e.Handled = false;
}
else
{
e.Handled = true;
}
No hay comentarios.:
Publicar un comentario