如何在未聚焦的WinForms TextBox / RichTextBox中显示光标?

我需要在WinForms应用程序中的RichTextBox控件中显示光标,即使它不在焦点上。 我怎样才能做到这一点? 我发现只有WPF的方式( 如何在没有聚焦时保持WPF TextBox选择? )

你可以使用WinAPI ..

[DllImport("user32.dll", EntryPoint = "ShowCaret")] public static extern long ShowCaret(IntPtr hwnd); [DllImport("user32.dll", EntryPoint = "HideCaret")] public static extern long HideCaret(IntPtr hwnd); 

并随时致电ShowCaret

您无法同时将焦点设置为两个或更多UI,但可以通过设置HideSelection=false来保留选择。

我不知道你想要实现什么,它有多少真正有用。 但如果它只是为了视觉目的,写一些像’|’的东西 在里面。 它是一种坏的,奇怪的,笨拙的方式,或者你称它为什么,为了视觉目的,它可能会起作用。

  public void blink() { while (true) { textBox1.Text = "|"; Thread.Sleep(200); textBox1.Text = ""; Thread.Sleep(200); } } private void Form1_Load(object sender, EventArgs e) { Thread t1 = new Thread(new ThreadStart(blink)); t1.Start(); } 

我不确定我给的是你所要求的,但要得到准确的答案,你必须暴露你对此要求的需求。

希望能帮助到你。