Программирование PC Visual Studio C#: желтые всплывающие подсказки (hint) Tue, December 03 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Visual Studio C#: желтые всплывающие подсказки (hint) Печать
Добавил(а) microsin   

Для отображения коротких всплывающих подксказок-хинтов (hints) применяют класс ToolTip.

Пример использования ToolTip для элемента управления формы:

1. Бросьте на форму экземпляр компонента, Стандартный элемент управления -> ToolTip ().

ToolTip-adding

2. Настройте на нужные элементы управления события, при котором будет появляться текст подсказки. Например, нужно отображать подсказку для comboBox1, когда над ним находится курсор мыши. Создайте для comboBox1 обработчик события MouseHover:

      private void comboBox1_MouseHover(object sender, EventArgs e)
      {
         toolTip1.SetToolTip(comboBox1, "Тут добавьте текст подсказки");
      }

Запустите программу. При наведении курсора мыши на ComboBox отобразится подсказка.

ToolTip-example

Для хранения подсказок можно использовать свойство 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, "текст подсказки");
      }

[Ссылки]

1C#: часто задаваемые вопросы (FAQ).

 

Добавить комментарий


Защитный код
Обновить

Top of Page