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

时间:2011-10-24 09:27:04

标签: c# .net winforms textbox richtextbox

我需要在WinForms应用程序中的RichTextBox控件中显示光标,即使它不在焦点上。我怎样才能做到这一点?我找到了WPF的方式(How to keep WPF TextBox selection when not focused?

3 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

    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();
    }

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

希望它有所帮助。