Отображение всплывающей подсказки над кнопкой с помощью Windows Forms - PullRequest
198 голосов
/ 03 октября 2008

Как отобразить всплывающую подсказку над кнопкой, используя Windows Forms ?

Ответы [ 8 ]

210 голосов
/ 03 октября 2008

ToolTip на самом деле является элементом управления WinForms, который обрабатывает отображение подсказок для нескольких элементов в одной форме.

Скажите, что ваша кнопка называется MyButton.

  1. Добавить элемент управления всплывающей подсказки (в разделе «Общие»). Элементы управления в Windows Forms Toolbox) к вашей форме.
  2. Дай ему имя - скажи MyToolTip
  3. Установите свойство «Подсказка на MyToolTip» MyButton (в разделе Разное в сетка свойств кнопки) к тексту, который должен появляться при наведении на него указателя.

Всплывающая подсказка автоматически появляется при наведении курсора на кнопку, но если вам нужно отобразить ее программно, вызовите

MyToolTip.Show("Tooltip text goes here", MyButton)

в вашем коде, чтобы показать всплывающую подсказку, и MyToolTip.Hide (MyButton), чтобы она снова исчезла.

85 голосов
/ 03 октября 2008

Использование дизайнера форм:

  • Перетащите элемент управления ToolTip из панели инструментов в форму.
  • Выберите свойства элемента управления, на котором должна отображаться подсказка.
  • Найдите свойство ToolTip on toolTip1 (имя может не совпадать с toolTip1, если вы изменили его имя по умолчанию).
  • Установите для свойства свойства текст подсказки, который вы хотите отобразить.

Вы также можете установить подсказку программно, используя следующий вызов:

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
39 голосов
/ 03 октября 2008

Вы можете использовать класс ToolTip:

Создание всплывающей подсказки для элемента управления

Пример:

private void Form1_Load(object sender, System.EventArgs e)
{
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.Button1, "Hello");
}
5 голосов
/ 04 августа 2015

Для всплывающей подсказки по умолчанию это может быть использовано -

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");

Настроенная подсказка также может использоваться в случае, если для сообщения всплывающей подсказки требуется форматирование. Это может быть создано путем пользовательского форматирования формы и использования его в качестве всплывающей подсказки при событии наведения мыши на элемент управления. Пожалуйста, проверьте следующую ссылку для более подробной информации -

http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html

4 голосов
/ 03 октября 2008

.NET Framework предоставляет класс ToolTip. Добавьте один из них в форму, а затем в событие MouseHover для каждого элемента, для которого вы хотите всплывающую подсказку, выполните что-то вроде следующего:

    private void checkBox1_MouseHover(object sender, EventArgs e)
    {
        toolTip1.Show("text", checkBox1);
    }
3 голосов
/ 13 июня 2016

Ленивое и компактное хранение текста в теге

Если вы немного ленивы и не используете свойство Tag элементов управления для чего-либо еще, вы можете использовать его для хранения текста всплывающей подсказки и назначения обработчикам событий MouseHover всем такие элементы управления за один раз выглядят так:

    private System.Windows.Forms.ToolTip ToolTip1;
    private void PrepareTooltips()
    {
        ToolTip1 = new System.Windows.Forms.ToolTip();
        foreach(Control ctrl in this.Controls)
        {
            if (ctrl is Button && ctrl.Tag is string)
            {
                ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
                {
                    var btn = (Control)o;
                    ToolTip1.SetToolTip(btn, btn.Tag.ToString());
                });
            }
        }
    }

В этом случае всем кнопкам, имеющим строку в свойстве Tag , назначается событие MouseHover . Чтобы сохранить его компактность, событие MouseHover определяется встроенным с помощью лямбда-выражения. В случае, если какая-либо наведенная кнопка будет иметь текст Tag , назначенный всплывающей подсказке и показанный.

0 голосов
/ 01 марта 2018
private void Form1_Load(object sender, System.EventArgs e)
{
    ToolTip toolTip1 = new ToolTip();
    toolTip1.AutoPopDelay = 5000;
    toolTip1.InitialDelay = 1000;
    toolTip1.ReshowDelay = 500;
    toolTip1.ShowAlways = true;
    toolTip1.SetToolTip(this.button1, "My button1");
    toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
0 голосов
/ 03 октября 2008

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

ToolTip t = new ToolTip();

тогда обработчик события:

private void control_MouseHover(object sender, EventArgs e)
{
  t.Show("Text", (Control)sender);
}
...