В Windows XP появились встроенные подсказки, которые выводятся в текстовом поле, пока пользователь не поставит туда курсор. По-английски они называются cue banners, а вот русский термин мне не известен (Language Portal не помог).
Необходимые действия для создания кьюшки в обычном дотнетовском текстовом поле уже подробно описаны до нас; нам нужно только применить рецепт для вытаскивания текстового поля из девэкспрессовских контролов.
Итак, необходимые объявления:
private const int EM_SETCUEBANNER = 0x1501;
private const int EM_GETCUEBANNER = 0x1502;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(
IntPtr hWnd,
int msg,
int wParam,
[MarshalAs(UnmanagedType.LPWStr)] string lParam);
Установка кьюшки на девэкспрессовский контрол (помним, что контролы DevExpress содержат текстовое поле в качестве дочернего контрола):
foreach (Control control in buttonEdit1.Controls)
{
if (control is TextBox)
{
WinApi.SendMessage(control.Handle, WinApi.EM_SETCUEBANNER, 0, "Cue banner");
}
}
Вот так выглядит результат:
К сожалению, кьюшки абсолютно стандартны и ничего не знают о темах девэкспресса, поэтому на инверсной теме они выглядят довольно убого.
| ← | Лучшее за 2004 год: научная фантастика, космический боевик, киберпанк (сборник) | What kind of shit? | → |