WinForms:我不想要任何Tab鍵順序。我希望自己能夠以編程方式處理窗體上的所有Tab選項,並使用我需要的一些邏輯。 如何完全禁用Tab鍵順序?我假設之後,我應該處理每個控制的KeyDown事件或一些類似的事件......完全禁用表單上的TabOrder
0
A
回答
3
你需要重寫表單的ProcessCmdKey()方法。測試keydata == Keys.Tab和(Keys.Shift | Keys.Tab)以分別檢測向前和向後選項卡。返回true表示你已經使用了密鑰,不應該再使用它。這會打敗Tab鍵的Winforms默認處理。不需要對控件進行其他更改。
窗體的ActiveControl屬性告訴你哪個控件當前有焦點,你需要用它來確定下一個應該集中哪個控件。請注意,它在技術上可以爲空。注意嵌入在容器控件中的控件,如Panel或UserControl。做這個工作肯定是不愉快的,也很難維護。只有在表單上的控件數量有限的情況下才能執行此操作。
1
一種方法是將TabStop
屬性中的每個控件的形式設置爲false
。這將防止Tab鍵爲控件提供焦點。
如果您不想爲每個控件(例如在設計視圖中)手動執行此操作,則可以創建一個方法來遍歷表單的Controls
集合中的所有控件,並在每個控件上設置屬性,然後從窗體的構造函數中調用它。
2
阿德里安說,由製表位設置爲false,您可以禁用它 這樣的功能可以是有用到魔鬼所有的製表位
private void DiableTabStop(Control ctrl)
{
ctrl.TabStop = false;
foreach (Control item in ctrl.Controls)
{
DiableTabStop(item);
}
}
,並在窗體加載調用它
DiableTabStop(this);
-1
除了禁用頁框的製表位,正如您所提到的,您想要控制哪個「製表符」處於活動狀態。您可以在您的「WhichTab」表單上顯示自定義屬性。然後,覆蓋點擊事件並檢查傳入的發件人/事件頁面是否是另一頁面的頁面...無論如何,強制回到您正在控制設置的「WhichTab」...準備好激活所述頁面,告訴選項卡控制對象以激活新頁面以顯示給用戶。
相關問題
- 1. 完全禁用CollectionEditor
- 2. 完全禁用HTML5緩存(清單)?
- 3. 如何完全禁用android上的菜單按鈕?
- 4. 完全禁用掠影
- 5. TinyMCE - 完全禁用驗證
- 6. 完全禁用REST API
- 7. 禁用完全QuoteCharacter在DelimitedLineTokenizer
- 8. 完全禁用WCF代理
- 9. 如何完全禁用django.contrib.auth?
- 10. 完全禁用超時
- 11. 完全禁用JMeter緩存
- 12. 在MS Edge中禁用表單完成
- 13. Struts 2 +禁用表單自動完成
- 14. 的TabOrder不工作
- 15. 禁用表單安全性CakePHP
- 16. MAMPRO 3如何禁用FastCGI的完全
- 17. 如何完全禁用UITextView的滾動?
- 18. 如何使用Alamofire完全禁用URLCache
- 19. Windows上的QtCreator/QMake完全禁用調試版本
- 20. 在顯示其他表單時禁用完整表單
- 21. VS2010禁用xaml中的大綱(或完全禁用大綱)
- 22. Delphi中的DBGridEh中的TabOrder
- 23. 如何完全禁用代碼合同?
- 24. 如何完全禁用Android鍵盤
- 25. 完全禁用NSTextView拼寫檢查
- 26. 如何完全禁用NServiceBus重試
- 27. 完全禁用Jquery UI小部件
- 28. 如何完全禁用Yammer聊天?
- 29. 完全禁用柵格滾動條
- 30. Symfony2:如何完全禁用分析器?
啊,我並不知道向前和向後標籤。是的,我有很多這些嵌入式控件(分離器,面板,activeX)。 – Bohn 2011-06-07 14:55:53