Estoy intentando establecer una máscara hexadecimal para un cuadro de texto. Para que solo se puedan ingresar números hexadecimales válidos. (Y ',' y 'ENTER')C# Hex Mask para entrada de cuadro de texto enmascarado
Casi funciona. Hasta ahora, solo permitirá letras pequeñas de a-f y números 0-9, pero aún puedo ingresar letras mayúsculas GHIJKLM. (Al principio, cuando se inicia el programa, parece aceptar un char exk, pero después de haberlo excluido una vez que no se mostrará después de eso, hasta la próxima vez que inicie el programa. Eso es extraño.)
Aquí hay una parte del código:
private void EnterKey(Object sender, System.Windows.Forms.KeyPressEventArgs e)
{
// if keychar == 13 is the same as check for if <ENTER> was pressed
if (e.KeyChar == (char)13)
{
// is <ENTER> pressed, send button_click
button1_Click(sender, e);
}
{
// this will only allow valid hex values [0-9][a-f][A-F] to be entered. See ASCII table
char c = e.KeyChar;
if (c != '\b' && !((c <= 0x66 && c >= 61) || (c <= 0x46 && c >= 0x41) || (c >= 0x30 && c <= 0x39) || (c == 0x2c)))
{
e.Handled = true;
}
}
}
Así es como me ato el evento:
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyDown);
}
podría alguien de ustedes sabios, ver lo que estoy haciendo mal?
Es mi primer programa pequeño, por lo que ir fácil en mí: o)
La parte sobre la primera pulsación de tecla no tiene mucho sentido. ¿Cómo se vincula el evento? ¿Intentó utilizar el evento 'KeyDown'? – Kobi
hice esto desde el cuadro de entrada: privada vacío TextBox1_TextChanged (object sender, EventArgs e) { this.textBox1.KeyPress + = new System.Windows.Forms.KeyPressEventHandler (textBox1_KeyDown); } – user302935