2014-09-04 107 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 

虽然没有看到您的代码,但您很难做出正确的决定。

从以上链接:

指定的整数值为枚举成员转换。