什么';在.NET的哈希表中添加键盘加速器的好处是什么?
很长一段时间以来,我在Firefox中拥有以下书签:什么';在.NET的哈希表中添加键盘加速器的好处是什么?,.net,winforms,keyboard-shortcuts,hashtable,.net,Winforms,Keyboard Shortcuts,Hashtable,很长一段时间以来,我在Firefox中拥有以下书签: 我知道,我决定阅读它,并在应用程序中实现它,它应该在不久前实现。然而,我看不出这种方法有什么好处 我知道hastable背后的想法是提供一个集合,我们可以确保没有冲突,每个项目都是唯一的。但是,使用哈希表作为键盘加速器真的有什么好处吗 例如,拥有此功能有什么好处(如上面的链接所示): 在这方面: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
我知道,我决定阅读它,并在应用程序中实现它,它应该在不久前实现。然而,我看不出这种方法有什么好处 我知道hastable背后的想法是提供一个集合,我们可以确保没有冲突,每个项目都是唯一的。但是,使用哈希表作为键盘加速器真的有什么好处吗 例如,拥有此功能有什么好处(如上面的链接所示): 在这方面:
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);
}
第一个示例是可配置的。您只需更改哈希表的内容,就可以在运行时更改加速器,让用户配置它们 这里,哈希表并不完全用于唯一性约束。它的价值来自于基于一个键(在本例中,是字面意思)快速检索数据的能力
您正在使用.NET2.0吗?如果是这样,您应该使用,而不是哈希表,因为您可以得到强类型。第一个示例使用索引器中的
键。你的意思是keyData
?什么是Acceleratoryy
方法?可能是keyData,我只是从文章中复制/粘贴的。AcceleratorWorkey方法和其他所有内容都在本文中。这是一个简短的阅读。我仍然无法看到/理解基于密钥检索某些内容的好处,因为我可以直接在案例中进行检索。我认为这样做的唯一原因是代码组织,并使其更干净,而不是别的。但只有当我有很多键盘加速器时,这才是真正的好处。如果它们只是少数,我认为这不值得。那么在运行时更改加速器的能力呢?
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);
}