2015-06-15 3 views
0

Я изменяю программу, чтобы список удалял ввод с клавиатуры (цифровая клавиатура, D0-D9, буквенные клавиши) и редактировал свойства выбранного в данный момент элемента списка на основе ввода. моя проблема в том, что, похоже, нет функциональности, которая может преобразовать нажатие клавиши в письмо. для примеров, в настоящее время у меня есть функция, которая идетПолучение ввода с клавиатуры в winform listbox

 string letter; 
     if (e.KeyCode == Keys.A) { letter = "a"; return letter; } 
     if (e.KeyCode == Keys.B) { letter = "b"; return letter; } 
     if (e.KeyCode == Keys.C) { letter = "c"; return letter; } 
     if (e.KeyCode == Keys.D) { letter = "d"; return letter; } 
     if (e.KeyCode == Keys.E) { letter = "e"; return letter; } 
     if (e.KeyCode == Keys.F) { letter = "f"; return letter; } 
     if (e.KeyCode == Keys.G) { letter = "g"; return letter; } 
     if (e.KeyCode == Keys.H) { letter = "h"; return letter; } 
     if (e.KeyCode == Keys.I) { letter = "i"; return letter; } 
     if (e.KeyCode == Keys.J) { letter = "j"; return letter; } 
     if (e.KeyCode == Keys.K) { letter = "k"; return letter; } 
     if (e.KeyCode == Keys.L) { letter = "l"; return letter; } 
     if (e.KeyCode == Keys.M) { letter = "m"; return letter; } 
     if (e.KeyCode == Keys.N) { letter = "n"; return letter; } 
     if (e.KeyCode == Keys.O) { letter = "o"; return letter; } 
     if (e.KeyCode == Keys.P) { letter = "p"; return letter; } 

и так далее для всего алфавита и цифр, и я хотел бы расширить его, чтобы включить символы, а также. Мне было интересно, существует ли более эффективная функция, которую я могу вызвать, которая может принимать в keyeventArg, или его keyCode/KeyValue/KeyData, и быть в состоянии сказать мне, что это за буква/номер, вместо того, чтобы вводить ее для каждой отдельной буквы/номера /символ.

+0

Вы используете неправильное событие, вместо этого вы используете событие KeyPress. –

+0

посмотрите здесь, если это поможет [KeysConverter Class Msdn] (https://msdn.microsoft.com/en-us/library/system.windows.forms.keysconverter.aspx) – MethodMan

ответ

0
private void listBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     string letter = ""; 
     //letter = ProcessKey(e.KeyChar); 
     //or 
     letter = e.KeyChar.ToString(); 
    } 

    private string ProcessKey(char key) 
    { 
     return key.ToString(); 
    } 
Смежные вопросы