2011-03-08 89 views
2

我維護一個基於Windows窗體的應用程序框架。我沒有明確指定Tab鍵順序的豪華感 - 控件是在運行時添加的,所以Visual Studio沒有幫助。是否有Windows窗體中tabindex行爲的權威指南?

Tab順序,特別是涉及容器時,是一個謎。是否存在描述在運行時如何管理Tab鍵順序的資源?

回答

2

發佈的答案不正確,Z順序與標籤順序無關。在窗體上放置控件的順序也以可預測的方式設置z順序和TabIndex屬性值,這只是巧合。只要使用「格式」菜單將控件移動到前面或後面,它就會變得很亂。只有TabIndex很重要。直觀地說:否則就不需要財產。

這裏沒有捷徑,如果你不能使用設計器爲你設置TabIndex屬性,那麼你必須自己設置它。你必須編寫代碼。這通常不是那麼困難,只需從最後一次使用的值開始順序分配,按Tab鍵順序添加控件。如果您需要在您與設計者一起添加的控件之間插入它們,請在指定的TabIndex值中留下空隙。

+0

組合框或面板等容器如何與製表順序進行交互?我應該在它們上面設置tabindex嗎?或者製表符(在表單內)是否從最低到最高順序進行?謝謝你的回答! – 2011-03-10 15:45:22

+0

容器與其他控件一樣具有TabIndex。一旦獲得焦點,標籤就會在容器內的控件之間進行切換。在到達最後一個之前,下一個Tab按鍵返回到父級。請注意,這些控件的TabIndex編號從0開始。檢出Control.SelectNextControl()方法的參數以獲取深入信息。他們通常都設置爲true。 – 2011-03-10 15:54:08

1

我會想象MSDN有definitive guide

同樣重要的是:UpdateZOrder,正如在@jswolf19的評論中指出的那樣。

+1

加上[UpdateZOrder](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.updatezorder.aspx),你應該知道你需要的一切。 – jswolf19 2011-03-08 15:55:58

+0

@jswolf:謝謝,我會編輯它。 – 2011-03-08 15:57:35

+0

這不是一個明確的指南。 (MSDN可能有這樣的事情,但是沒有額外討論的缺乏文檔就不是這樣。) – clweeks 2015-04-23 13:42:12

0

選項卡索引設置爲創建事物的順序。但是,無論如何,您可以在運行時指定選項卡索引,以便在獲取所需行爲時不會有任何問題。