2015-06-15 27 views
0

我正在更改程序,以便列表框获取键盘输入(数字键盘,D0-D9,字母键)并根据输入编辑当前选定列表框项目的属性。我的问题是,似乎没有功能可以将按键转换为字母。为例子,目前我有去在winform列表框中获取键盘输入

 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类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(); 
    }