Я пытаюсь установить шестнадцатеричную маску для текстового поля.Так что можно вводить только действительные шестнадцатеричные числа.(И ',' и 'ENTER')
Это почти работает.Пока что разрешены только маленькие буквы от af и цифры 0-9, но я все еще могу вводить заглавные буквы GHIJKLM.(Сначала, когда программа запускается, кажется, что она принимает один символ ex k, но после того, как он превысил k, после этого он не будет показан, до следующего запуска программы. Это странно.)
Здесьявляется частью кода:
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;
}
}
}
Вот как я связываю событие:
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyDown);
}
Может ли кто-нибудь из вас, мудрецы, увидеть, что я делаю неправильно?
Это моя первая небольшая программа, поэтому будьте осторожны со мной: o)