Keys.PageDown.ToString() returns Next

3
我已经阅读了几篇关于这个问题的文章。基本上,PageDown和PageUp分别与Next和Prior相关联,以保持向后兼容性。但问题在于没有可靠的方法来获取想要的值(至少我没有看到过)。请参见此处以获得很好的解释。虽然相当古老,但我认为现在可能已经有些改进了。目前我能看到两个选项; Enum.GetNames(typeof(Keys)).GetValue(e.KeyValue);。对于“PageUp”,返回“Prior”,但对于“PageDown”,返回“PageDown”。
  1. e.KeyCode.ToString();
这段代码返回“PageUp”作为“PageUp”的结果,但是返回“Next”作为“PageDown”的结果。
我可以手动处理,但如果有另一种情况呢? 有没有更好的解决方案?
1个回答

1
也许最好的做法是创建一个查找表来翻译枚举值。
您可以使用字典实现查找表,将枚举值映射到字符串,如果字典不包含枚举值,则回退到 Enum.ToString() 来获取该值。这样,您只需要将例外情况(例如 PageUp 和 PageDown)添加到字典中即可。
(请注意,如果您要向用户显示这些字符串,并且想要国际化字符串,则可能需要为大多数字符串添加翻译条目。)

是的,我已经手动处理它了。可惜没有更好的选择。 - Trent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接