В каком событии я могу поменять каретку в маске для текста winforms - PullRequest
1 голос
/ 05 июля 2011

Прямо сейчас я вызываю win32 createcaret / showcaret в событии нажатия клавиши моего замаскированного текстового поля.Это меняет это прекрасно.Я хочу, чтобы каретка изменялась при вводе поля, либо по вкладке, либо по щелчку.

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

Так или иначе, как я могу получить каретку для изменения при вводе текстового поля, не обрабатывая ее в событии ввода?

1 Ответ

1 голос
/ 06 июля 2011

Вам также необходимо добавить DestroyCaret в вашу программу:

private void Form1_Load(object sender, EventArgs e)
{
  textBox1.GotFocus += new EventHandler(textBox1_GotFocus);
  textBox1.LostFocus += new EventHandler(textBox1_LostFocus);
}

private void textBox1_GotFocus(object sender, EventArgs e)
{
  CreateCaret(textBox1.Handle, IntPtr.Zero, 6, textBox1.Height);
  ShowCaret(textBox1.Handle);
}

private void textBox1_LostFocus(object sender, EventArgs e)
{
  DestroyCaret();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...