如何防止用户点击时激活表单?

时间:2010-03-23 14:31:15

标签: delphi winapi c++builder vcl

我有一个主要表单和非模态自动完成表单。当用户点击自动填充表单中的列表时,如何防止用户激活自动填充表单?

所以,基本上我希望自动完成表单在用户点击时接收鼠标单击消息,但永远不会变为活动状态,因为它会导致我无法控制的主表单中的第三方组件出现问题。 / p>

2 个答案:

答案 0 :(得分:6)

覆盖表单的CreateParams方法,并将WS_EX_NOACTIVATE样式添加到扩展样式。

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;

  Params.WindowClass.ExStyle := Params.WindowClass.ExStyle or WS_EX_NOACTIVATE;
end;

(从内存写入的代码,可能包含拼写错误)

答案 1 :(得分:0)

使用CreateParams(Alex T.回答)或者您可以尝试将YourForm.Enabled设置为False