【发布时间】:2010-12-19 03:07:47
【问题描述】:
很长一段时间我在 Firefox 中都有以下书签:
http://www.codeguru.com/csharp/.net/net_general/keyboard/article.php/c4639
我知道决定阅读它并在应用程序中实现它,它应该在一段时间前实现。但是,我认为这种方法没有任何好处...
我知道 hastable 背后的想法是提供一个集合,我们可以确定没有冲突,每个项目都是独一无二的。但是,将哈希表用于键盘加速器真的有什么大好处吗?
例如,这样做有什么好处(如上面的链接):
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
Accelerators accel = Accelerators.Unspecified;
if (_accelHash.ContainsKey(AcceleratorKey(keyData))) {
accel = (Accelerators)_accelHash[key];
switch (accel) {
case Accelerators.Home:
DisplayHome();
return true;
}
}
return base.ProcessCmdKey(ref m, keyData);
}
关于这个:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
switch (keyData) {
case Keys.Alt | Keys.H:
DisplayHome();
return true;
}
return base.ProcessCmdKey(ref m, keyData);
}
【问题讨论】:
-
第一个示例在索引器中使用
key。你的意思是keyData? -
AcceleratorKey方法是什么? -
可能是keyData,我只是从文章中复制/粘贴。 AcceleratorKey 方法和其他所有内容都在文章中。这是一个简短的阅读。
标签: .net winforms keyboard-shortcuts hashtable