我已經為一個應用程式撰寫了一個擴展框架,我希望用戶能夠設定鍵盤快捷鍵以運行他們的擴展。
當我在運行時將 MenuItem 添加到 MainMenu 控制元件時,我希望能夠使用 Crtl N,例如,運行擴展,而不必使用滑鼠或鍵盤單擊 MenuItem。
但問題是我不知道如何將用戶的字串值轉換為 MenuItem.Shortcut。
例如,這是用戶選擇的鍵盤快捷鍵:
"Ctrl N"
如何以某種方式將其轉換為MenuItem.Shortcut?我在 MSDN 上找不到任何關于此的內容。
我閱讀了檔案。
uj5u.com熱心網友回復:
您可以將用戶輸入決議為字串,例如:
var shortcut = Enum.Parse(typeof(Shortcut), "CtrlN");
但我建議你不要那樣做。您強制用戶輸入類似CtrlShiftF10, 正確大小寫的內容,否則輸入驗證失敗。
一個專用的界面,類似于 PropertyGrid 中顯示的快捷方式轉換器會更好,因此您不會強迫用戶猜測要寫什么并避免拼寫錯誤。
但是您也可以將列舉器值分配給,例如組合框的資料源,因此您可以讓用戶選擇其中一個條目。例如:
someComboBox.DataSource = Enum.GetValues(typeof(Shortcut));
someComboBox.SelectionChangeCommitted = (s, e) =>
{ var selectedShortcut = (Shortcut)(s as ComboBox).SelectedItem; };
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/527164.html
標籤:C#。网表格主菜单
上一篇:如何使彈出視頻回應于移動設備
