我有一个主要表单和非模态自动完成表单。当用户点击自动填充表单中的列表时,如何防止用户激活自动填充表单?
所以,基本上我希望自动完成表单在用户点击时接收鼠标单击消息,但永远不会变为活动状态,因为它会导致我无法控制的主表单中的第三方组件出现问题。 / p>
答案 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
。