托管 VCL.箭头键和 Tab 键

本文关键字:Tab VCL 托管 | 更新日期: 2023-09-27 18:34:43

我正在使用托管VCL在Delphi表单上托管我的.net用户控件。但是我有一个问题:Tab 键,箭头键和特定键(主页,插入(不起作用。

我尝试了托管VCL论坛上写的所有内容。
1(我尝试将我的用户控件放在更高级别的用户控件中,并在那里覆盖 ProcessDialogKey。但这并没有帮助。
2(我试图将DLGC_WANTTAB或DLGC_WANTALLKEYS添加到TClrCustomControl.WMGetDlgCode的消息结果中,但这也没有帮助我。

任何人都可以帮助我解决这个问题吗?

托管 VCL.箭头键和 Tab 键

我也有类似的问题。 我通过截获主机窗体上的 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 控件,这可能不太适合您的情况。