>

Кьюшки (cue banner) в контролах DevExpress

15 октября 2009 // Хельги

В Windows XP появились встроенные подсказки, которые выводятся в текстовом поле, пока пользователь не поставит туда курсор. По-английски они называются cue banners, а вот русский термин мне не известен (Language Portal не помог).

/users/helgi/cue-banner-vista.png

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

Итак, необходимые объявления:

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

Вот так выглядит результат:

/users/helgi/cue-banner.png

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

Тэги: c#, работа, советы
Комментарии (1)

Лучшее за 2004 год: научная фантастика, космический боевик, киберпанк (сборник)What kind of shit?

Обсуждение

1. John(DevExpress Support)

SendMessage(buttonEdit1.MaskBox.Handle, EM_SETCUEBANNER, 0, "Cue banner");
Please note that the MaskBox property is hidden and is not visible for IntelliSense.

213.87.137.115   оставлено 4 января 2013 в 7:48  

 

Написать комментарий

На этот адрес будут приходить только уведомления о новых комментариях к этой записи.
Чтобы отправить комментарий, введите сюда слово «человек».
« »  
Высота поля:
Разрывы строк (Enter) будут сохранены. HTML не работает. Гиперссылки: вставьте URL.

Ваш комментарий появится после одобрения модератором.