2012-05-18 56 views
4

我正在使用託管VCL託管我的.net用戶控件在Delphi窗體上。 但我有一個問題:標籤鍵,箭頭鍵和特定鍵(HOME,INSERT)不起作用。

我嘗試了所有寫在Managed VCL論壇上的東西。
1)我試圖把我的用戶控件放到更高級別的用戶控件中,並覆蓋了ProcessDialogKey。但這沒有幫助。
2)我試圖將DLGC_WANTTAB或DLGC_WANTALLKEYS添加到TClrCustomControl.WMGetDlgCode的消息結果中,但這也沒有幫助我。託管VCL.Arrow鍵和Tab鍵

任何人都可以幫助我解決這個問題嗎?

回答

0

我有類似的問題。我通過攔截主機窗體上的Tab鍵並且不允許它處理按鍵來解決它。下面的代碼工作在我的情況:

procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY; 
... 
procedure TForm1.CMDialogKey(var Message: TCMDialogKey); 
begin 
    if Message.CharCode = VK_TAB then 
    // ignore tabs and allow the TClrControl to handle them 
    else 
    inherited; 
end; 

在我的情況下,TClrControl是客戶端對齊,並覆蓋整個形式,所以這可能不是很正確在您的情況,如果你是混合VCL和.NET控件。