2014-09-04 163 views
0

嗨im當前正在尋找如何轉換keyyday中的某個控件的KeyEventArgs事件中的鍵碼是否有辦法做到這一點?我找到了一種方法來將Keys Enum轉換爲Int我希望它以另一種方式。如何將KeyEventArgs.KeyCode轉換爲枚舉鍵

+0

KeyCode [已經是Keys枚舉](http://msdn.microsoft.com/en-us/library/system.windows.forms.keyeventargs.keycode(v = vs.110).aspx)。我想念什麼? – 2014-09-04 05:05:19

+0

我不明白這個問題。該標題說KeyCode鍵和身體暗示int的鍵是渴望的。 KeyCode屬性的類型是Keys。你想做什麼?你只是想要KeyValue這是一個int? – 2014-09-04 05:05:44

+0

粘貼一些代碼,你試過我們的理解 – 2014-09-04 05:07:36

回答

1

您可以簡單地使用強制轉換來獲取int的Enum值,但如果您有KeyEventArgs,那麼您已經擁有兩個KeyCodeKeyValue)。

void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    // You can cast a Keys enum to an int 
    // (although you already have the int value in e.KeyValue) 
    int keyInt = (int) e.KeyCode; 

    // You can cast an int to a Keys enum 
    // (although you already have the enum value in e.KeyCode) 
    Keys keyKeys = (Keys)keyInt; 
} 
+0

這對組合鍵像Alt或控制不起作用獲得枚舉: '鍵keyKeys =(鍵)17; // 17 = ControlKey //返回LButton | ShiftKey而不是ControlKey「 – 2015-12-17 08:14:59

1

如果你是想是採取一個int並將其轉換爲一個鍵枚舉可以使用System.Enum.ToObject方法。

Keys key = (Keys)System.Enum.ToObject(typeof(Keys), 65); //Will be A 

雖然沒有看到您的代碼,但您很難做出正確的決定。

從以上鍊接:

指定的整數值爲枚舉成員轉換。