将TApplicationEvents控件添加到窗体中,并使用OnShowHint事件:
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
begin
CanShow := HintInfo.HintControl <> Edit1;
end;
Application.OnShowHint := ApplicationEvents1ShowHint
手动设置事件处理程序。
如果在TTabSheet中有多个控件,则可能所有控件都有相同的问题。那你可能会对
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
begin
CanShow := not SameStr(HintStr, PageControl1.Hint) or (HintInfo.HintControl = TabSheet1);
end;
更新2
如果TPageControl中有多个TTabSheets,并且希望所有工作表都显示提示,但不希望显示子控件的提示,则可以这样做
CanShow := not SameStr(HintStr, PageControl1.Hint) or
((HintInfo.HintControl is TTabSheet) and
(TTabSheet(HintInfo.HintControl).PageControl = PageControl1));
相反。