繁体   English   中英

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

[英]How to show cursor in unfocused 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();
    }

我不确定我是否要提出您的要求,但是要获得准确的答案,您必须公开您对此要求的需求。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM