Как отобразить курсор в несосредоточенном WinForms TextBox / RichTextBox? - PullRequest
3 голосов
/ 24 октября 2011

Мне нужно показать курсор в элементе управления RichTextBox в приложении WinForms, даже когда он не в фокусе.Как я могу это сделать?Я нашел только способ для WPF ( Как сохранить выделение WPF TextBox, когда не сфокусировано? )

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Вы можете использовать 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 голос
/ 24 октября 2011

Нельзя установить фокус на два или более интерфейса одновременно, однако вы можете сохранить выбор, установив HideSelection=false.

0 голосов
/ 24 октября 2011

Я не знаю, чего вы пытаетесь достичь и насколько это действительно полезно. Но если это только для наглядности, напишите что-нибудь вроде '|' в этом. Это плохой, странный, неуклюжий способ, или как вы его называете, для визуальных целей это может сработать.

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

Я не уверен, что я даю то, о чем вы просите, но чтобы получить точный ответ, вы должны раскрыть свою потребность в этом требовании.

Надеюсь, это поможет.

...