В 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? | → |