我們在工作中得到了一定的搜索表單,最近進行了修改。它的功能是標準搜索表單的功能:在頂部的某些框中輸入一些條件,點擊搜索按鈕,然後在下面的網格中顯示結果。但它的功能很醜,而且功能非常有限,所以我的一位同事在離開新工作之前重建了它。現在我正試圖完成最後的幾個細節。如何使TVirtualStringTree按鍵具有更高的優先級?
其中一項變化是用更強大的TVirtualStringTree
替換舊的TListBox
網格。但在這個過程中,它似乎已經破壞了一些東西:在之前,如果你點擊了網格中的一行(給網格放置焦點)並且點擊輸入,相應的事件處理程序會觸發並處理你的輸入,打開所選項目的詳細視圖。但是,在此網格中,按輸入會導致TButton
與Default = true
屬性形式相反地觸發其OnClick
。
如何才能使TVirtualStringTree
具有輸入焦點時優先,以便它會響應用戶按(輸入本身之前(最好是而不是)將它分配到窗體之前)?
嗯......這可能會工作,但有沒有一種解決方案,不需要修改第三方組件的代碼? –
不客氣。你不需要修改代碼。您可以使用插入器,也可以通過分配給控件的WindowProc屬性來截獲窗口過程。如果你不處理'WM_GETDLGCODE',那麼默認按鈕將會得到消息。你不想要的。 –
哇。我實際上並不知道'WindowProc'屬性是一件事情。原來,這正是我需要解決的問題。謝謝! –