Отображение всплывающей подсказки над кнопкой с помощью Windows Forms
Как отобразить всплывающую подсказку над кнопкой с помощью Windows Forms?
10 ответов
ToolTip - это элемент управления WinForms, который отображает подсказки для нескольких элементов в одной форме.
Скажите, что ваша кнопка называется MyButton.
- Добавьте элемент управления ToolTip (в разделе "Общие элементы управления" на панели инструментов Windows Forms) в форму.
- Дай ему имя - скажи MyToolTip
- Установите для свойства "Подсказка на MyToolTip" MyButton (в разделе "Разное" в сетке свойств кнопки) текст, который должен отображаться при наведении на него курсора.
Всплывающая подсказка автоматически появляется, когда курсор находится над кнопкой, но если вам нужно отобразить ее программно, вызовите
MyToolTip.Show("Tooltip text goes here", MyButton)
в вашем коде, чтобы показать всплывающую подсказку, и MyToolTip.Hide(MyButton), чтобы она снова исчезла.
Использование дизайнера форм:
- Перетащите элемент управления ToolTip из панели инструментов на форму.
- Выберите свойства элемента управления, на котором должна отображаться подсказка.
- Найдите свойство ToolTip on toolTip1 (имя может не быть toolTip1, если вы изменили его имя по умолчанию).
- Установите в тексте свойства текст подсказки, который вы хотите отобразить.
Вы также можете установить подсказку программно, используя следующий вызов:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
Вы можете использовать класс 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");
}
Для всплывающей подсказки по умолчанию это может быть использовано -
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
.NET Framework предоставляет класс ToolTip. Добавьте один из них в форму, а затем в событии MouseHover для каждого элемента, для которого вы хотите всплывающую подсказку, сделайте что-то вроде следующего:
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
Ленивое и компактное хранение текста в свойстве 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 определяется внутри строки с использованием лямбда-выражения. В случае, если для любой кнопки будет отображен текст тега, который будет присвоен подсказке и показан.
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");
}
Основываясь на ответе DaveK, я создал контрольное расширение:
public static void SetToolTip(this Control control, string txt)
{
new ToolTip().SetToolTip(control, txt);
}
Затем вы можете установить всплывающую подсказку для любого элемента управления с помощью одной строки:
this.MyButton.SetToolTip("Hello world");
Я сделал классную подсказку. Код:
1. Инициализируйте объект всплывающей подсказки
2. вызовите объект, когда или где вы хотите показать свое творчество
Ex-
ToolTip t=new ToolTip();
t.setToolTip(textBoxName,"write your message here what tp you want to show up");
Конечно, просто обработайте событие mousehover и попросите его показать подсказку. t - это всплывающая подсказка, определенная либо в глобальных переменных, либо в конструкторе с использованием:
ToolTip t = new ToolTip();
тогда обработчик события:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}