Bueno bro, desde luego que soy novato y encontré una forma de solucionar tu problema (obviamente no es tan óptimo el código) donde abajo te pongo el código:
Primero, puse la propiedad MaxLength del textBox1 a 2, así se evita que se escriban números mayores que 99Código del evento KeyPress del textBox1:
if (Char.IsDigit(e.KeyChar))
{
e.Handled = false;
}
else if (e.KeyChar == 'b')
{
e.Handled = false;
}
else
{
e.Handled = true;
}
Código del evento TextChanged del textBox1 (Cuando el textBox1 cambia):
if (textBox1.Text.Length == textBox1.MaxLength) //Si los dos dígitos aceptados están escritos
{
if (Convert.ToInt32(textBox1.Text) < 0 || Convert.ToInt32(textBox1.Text) > 50)
{
this.Text = "ERROR"; //En caso de que el valor sea mayor que el indicado, el título del formuario se pone como ERROR
}
else
{
this.Text = textBox1.Text;//En caso de que el valor ingresado esté en el rango, el título del formulario se pone de acuerdo al valor ingresado
}
}
else if (textBox1.Text.Length==1)//En caso de que cuando se pone el primer dígito
{
if (textBox1.Text[0] == '0')//Si el dígito es 0, automáticamente lo borra y esto obliga a poner números del 1 en adelante
{
textBox1.Clear();
}
}
Otra alternatica podría ser el control numericUpDown, con ese le indicas los rangos máximo de valores que aceptará el control y te evitas de tantas validaciones.
Bueno bro, como te dije, tal vés no es lo más óptimo, pero al menos funciona y es lo que pude encontrar como solución, debido a como te digo, soy novato todavía.
Aquí hay muy buenos programadores profesionales que de seguro ellos te puedan mostar un código más corto y óptimo, tales como ProfesorX y JuanK.
Saludos bro!;
Morringos!;