it-swarm.com.ru

Отображение всплывающей подсказки над кнопкой с помощью Windows Forms

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

189
Anonymous Cow

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

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

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

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

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

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

203
Dylan Beattie

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

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

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

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
83
jmatthias

Вы можете использовать класс 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");
}
35
DaveK

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

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
nvivekgoyal

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

    private void checkBox1_MouseHover(object sender, EventArgs e)
    {
        toolTip1.Show("text", checkBox1);
    }
3
Timothy Carter

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

Если вы немного ленивы и не используете свойство 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 будет назначен всплывающей подсказке и показан. 

3
flodis
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
akn