如何在Delphi TEdit中隐藏插入符号?

问题描述 投票:0回答:3

我想从 Delphi 中的 TEdit 控件中删除插入符号。我已经制作了组件

Enabled := False
但插入符号仍然出现。 我的问题是如何从禁用的 TEdit 控件中删除插入符号?

delphi textbox caret
3个回答
8
投票

我认为你的意思是

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;

0
投票

在窗体上放置一个

TApplicationEvents
控件,并在
OnIdle
事件中隐藏插入符号,如下所示。将事件设置为 nil,这样它只触发一次。

procedure TFormMain.AppEventsIdle(Sender: TObject; var Done: Boolean);
begin
  AppEvents.OnIdle := nil;
  HideCaret(Memo1.Handle);
end;

0
投票

另一种可能的解决方案: 添加文本后将焦点设置在不同的组件上。

// Remove caret by setting focus on a different component
btn1.SetFocus;
© www.soinside.com 2019 - 2024. All rights reserved.