2016-03-09 47 views
1

我有一個顯示不同MDI表單的應用程序。一個表單包含大量的可視化組件,並且在顯示錶單後不知何故焦點將丟失。我需要在接受鍵盤輸入(帶有文本字段例如TEdit,TMemo等)的表單上找到第一個控件(最低集TabOrder),所以我可以將其設置爲active control。 LE:所有的控件都是在運行時創建的,創建順序根據業務邏輯而不同。接受鍵盤輸入的第一個控件

+0

也許迭代所有控件並檢查CanFocus? –

+0

好吧,清理完成後,「第一個」是什麼意思? Upperleftmost?關於表單的客戶區?最低的「TabOrder」?還有別的嗎? –

+0

然後循環查找帶有TabOrder = 0的控件。(或者只需在FormCreate事件中的代碼中或在設計時在IDE中設置ActiveControl。) –

回答

4

...並以某種方式顯示窗體後焦點丟失。

我的選擇是回答爲什麼會發生這種情況,並解決問題的根源,而不是修復其含義。

但回答這個問題,您正在尋找Form.SelectFirst

+0

在這一刻,很難解決組件和用戶定製的所有問題使用框架。 – RBA

相關問題