Hola tengo una duda sobre como validar un textbox que el segundo caracter ingresado sera un Punto, es un textbox donde se ingresa la estatura, es decir, que tiene que ser, numero - punto - numero - numero....
Lo demas que es que no permita algun caracter especial y nadamas que permita 4 caracteres como maximo ya lo tengo controlado, nadamas mi duda seria como validar que el segundo caracter sea un punto y que si no es un punto asignarle e.Handled = false;
Mi codigo es este
Código C#:
Ver originalpublic bool IsNumber(string inputvalue)
{
Regex isnumber = new Regex(@"^-?[0-9]+(\.?[0-9]+)?$");
return isnumber.IsMatch(inputvalue);
}
private void txtEstatura_KeyPress(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 tbtmp = sender as TextBox;
if (e.KeyChar == '.' && tbtmp.Text.IndexOf('.') > 0)
e.Handled = true;
else
e.Handled = false;
}
else
e.Handled = true;
}
private void txtEstatura_TextChanged(object sender, EventArgs e)
{
TextBox tbtmp = sender as TextBox;
if (tbtmp.Text.Length > 1 && tbtmp.Text[0] == '.')
{
int select = tbtmp.SelectionStart;
tbtmp.Text = tbtmp.Text.Insert(0, "0");
tbtmp.SelectionStart = ++select;
}
}
private void txtEstatura_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
TextBox tbtmp = sender as TextBox;
tbtmp.Text = decimal.Parse(tbtmp.Text).ToString();
}
Unicamente me haria falta eso, todo lo demas ya lo tengo.
Gracias!
Saludos!