我想从 Delphi 中的 TEdit 控件中删除插入符号。我已经制作了组件
Enabled := False
但插入符号仍然出现。
我的问题是如何从禁用的 TEdit 控件中删除插入符号?
我认为你的意思是
TEdit
控制。
解决方案是
HideCaret
函数,唯一的问题是在哪里调用它。下面的 2 个事件处理程序对我来说效果很好:
procedure TForm18.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
HideCaret(Edit1.Handle);
end;
procedure TForm18.Edit1MouseEnter(Sender: TObject);
begin
HideCaret(Edit1.Handle);
end;
在窗体上放置一个
TApplicationEvents
控件,并在 OnIdle
事件中隐藏插入符号,如下所示。将事件设置为 nil,这样它只触发一次。
procedure TFormMain.AppEventsIdle(Sender: TObject; var Done: Boolean);
begin
AppEvents.OnIdle := nil;
HideCaret(Memo1.Handle);
end;
另一种可能的解决方案: 添加文本后将焦点设置在不同的组件上。
// Remove caret by setting focus on a different component
btn1.SetFocus;