2013-10-02 32 views
3

我已閱讀了關於此問題的一些文章。基本上,爲了向後兼容,PageDown和PageUp分別鏈接到Next和Prior。問題在於沒有可靠的方法來獲得想要的值(至少沒有我能看到)。Keys.PageDown.ToString()返回下一個

查看here的一個很好的解釋。雖然年紀很大,但我認爲現在可能已經做了一些處理。

目前我可以看到兩個選項;

  1. Enum.GetNames(typeof (Keys)).GetValue(e.KeyValue);

這將返回 「上一頁」,而是 「下頁」 爲 「下頁」, 「前一」。

  1. e.KeyCode.ToString();

這將返回「上一頁」的「上一頁」,而是「Next(下一步)‘下頁’。

我可以手動處理它,但如果有這樣的嗎? 另一個實例有沒有人有更好的解決方案?

回答

1

也許最好的辦法是創建一個查找表來轉換枚舉值。

您可以使用字典實現查找表以將枚舉值映射到字符串,並且如果字典不包含枚舉值,則會退回到Enum.ToString()以獲取值。這樣你只需要將例外(比如PageUp和PageDown)添加到字典中。

(請注意,如果您顯示這些字符串給用戶,並要國際化的字符串,你可能需要添加翻譯條目大部分字符串)。

+0

是啊,我已經使出處理它像這樣手動。可惜沒有更好的選擇。 – Trent