Формы Windows: как сделать толстый мигающий курсор на текстовом поле? - PullRequest
0 голосов
/ 21 мая 2009

Я переписываю приложение Windows Form (обновленный фреймворк, переписал логику и т. Д.), И есть одна вещь, которую я просто не могу понять, как они это сделали. Текстовые поля в исходном приложении имели толстый мигающий курсор, например: http://screencast.com/t/8QYUcjuh3n

За свою жизнь я не могу понять, как это сделать. Пожалуйста, помогите?

1 Ответ

1 голос
/ 21 мая 2009

Вы можете сделать это с помощью pinvoke CreateCaret

В примере используется Winform с кнопкой (button1) и текстовым полем (textBox1).

Добавьте это, используя директиву:

using System.Runtime.InteropServices;

Добавить эти объявления:

[DllImport("user32.dll")]
static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
[DllImport("user32.dll")]
static extern bool ShowCaret(IntPtr hWnd);  

Добавьте этот код к событию нажатия кнопки:

  // Thickness is set where I have 10.
  CreateCaret(textBox1.Handle, IntPtr.Zero, 10, textBox1.Height);
  ShowCaret(textBox1.Handle);

Когда вы нажмете кнопку, вы получите более толстый курсор.

Здесь также обсуждается это здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...