我的應用程序有一個包含大約7個TabItem的TabControl的主窗口。在每個tabItem中放置一個UserControl。在我的應用程序中更改活動選項卡的快捷方式
當用戶按下組合鍵時,我希望(無論活動選項卡或控件)用戶界面跳轉到特定選項卡。也就是說,與Firefox:alt + 1轉到第一個選項卡相同的行爲,alt + n轉到N選項卡。
我該如何做到這一點?或...我應該開始搜索什麼?
我不能告訴你任何代碼,因爲問題是我不知道如何啓動。
感謝
我的應用程序有一個包含大約7個TabItem的TabControl的主窗口。在每個tabItem中放置一個UserControl。在我的應用程序中更改活動選項卡的快捷方式
當用戶按下組合鍵時,我希望(無論活動選項卡或控件)用戶界面跳轉到特定選項卡。也就是說,與Firefox:alt + 1轉到第一個選項卡相同的行爲,alt + n轉到N選項卡。
我該如何做到這一點?或...我應該開始搜索什麼?
我不能告訴你任何代碼,因爲問題是我不知道如何啓動。
感謝
設置窗體的KeyPreview
屬性true
,覆蓋形式的OnKeyDown
(或OnKeyUp
)方法,並把下面的代碼:(未經測試)
protected override void OnKeyDown(KeyEventArgs e) {
base.OnKeyDown(e);
if (e.Alt && e.KeyCode > '0' && e.KeyCode <= '9') {
tabControl.SelectedIndex = (int)(e.KeyCode - '1');
e.Handled = true;
}
}
非常好。這應該工作。 – 2009-11-11 21:50:20
經過測試和完美運作。我只通過e.KeyValue更改了e.KeyCode。謝謝。 – Jonathan 2009-11-12 20:37:06
我以爲你不想要允許'Alt-42'。 – SLaks 2009-11-11 21:44:47
+1,因爲這顯然是一個不平凡的問題。 – 2009-11-11 21:49:35
@Slacks:也許,因爲42是對生命的迴應,宇宙和一切......我們對未來的鍵盤一無所知。 :D – Jonathan 2009-11-11 22:00:43