Для отображения коротких всплывающих подксказок-хинтов (hints) применяют класс ToolTip.
Пример использования ToolTip для элемента управления формы:
1. Бросьте на форму экземпляр компонента, Стандартный элемент управления -> ToolTip ().
2. Настройте на нужные элементы управления события, при котором будет появляться текст подсказки. Например, нужно отображать подсказку для comboBox1, когда над ним находится курсор мыши. Создайте для comboBox1 обработчик события MouseHover:
private void comboBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.SetToolTip(comboBox1, "Тут добавьте текст подсказки");
}
Запустите программу. При наведении курсора мыши на ComboBox отобразится подсказка.
Для хранения подсказок можно использовать свойство AccessibleDescription, которое имеется у всех визуальных элементов управления GUI. Преимущество такого подхода - можно сделать один обработчик MouseHover сразу для множества элементов управления:
private void ToolTipMouseHover(object sender, EventArgs e)
{
toolTip1.SetToolTip((System.Windows.Forms.Control)sender,
((System.Windows.Forms.Control)sender).AccessibleDescription);
}
[Проблема с hint элемента интерфейса NumericUpDown]
Класс System.Windows.Forms.NumericUpDown имеет известный баг, который заключается в отсутствии задекларированного в подсказке события MouseHover (OnMouseHover). В справке MSDN это событие присутствует и описано, но в Visual Studio 2010 это событие для NumericUpDown добавить нельзя (не знаю, может быть в более поздних версиях баг исправлен). По этой причине добавить подсказку к NumericUpDown вышеописанным методом не получится. Чтобы обойти проблему, можно применить метод SetToolTip следующим способом:
//конструктор формы, где находится numericUpDown1
public Form1()
{
InitializeComponent();
//добавление хинта для numericUpDown1
foreach (Control c in numericUpDown1.Controls)
toolTip1.SetToolTip(c, "текст подсказки");
}
[Ссылки]
1. C#: часто задаваемые вопросы (FAQ). |