Ответ 1
Запоздалый ответ, но, возможно, полезный для других.
NotifyIcon.Text = "ToolTipText";
Я работаю с NotifyIcon, чтобы показать значок на панели задач. Эта программа не имеет формы Windows. Возможно, я смогу создать его и сделать его невидимым, но я надеялся избежать этого. Некоторые функции ToolTip, подключенные к NotifyIcon, несколько отсутствуют, и один из гуру предложил мне взглянуть на функциональность ToolTip. Можно прикрепить ToolTip к форме. Можно ли подключить его только к NotifyIcon? Я пытаюсь сделать это:
NotifyIcon CTicon = new NotifyIcon();
ToolTip toolTip = new ToolTip();
toolTip.SetToolTip(CTicon, "Test");
И я получаю сообщение об ошибке "не могу конвертировать из" System.Windows.Forms.NotifyIcon "в" System.Windows.Forms.Control ". Есть ли способ конвертировать? Я также пробовал:
toolTip.SetToolTip(CTicon.Container, "Test");
но контейнер, по-видимому, тоже не является допустимым. Прошу прощения за то, что я полностью не понимаю, как это может или не может работать.
Спасибо заранее.
Запоздалый ответ, но, возможно, полезный для других.
NotifyIcon.Text = "ToolTipText";
Значки лотка не поддерживают квадратные подсказки, только воздушные шары. Kinda имеет смысл, иконы, как правило, довольно близко друг к другу, поэтому было бы трудно понять, какой значок произвел наконечник без "стебля" на баллоне. Используйте свойство NotifyIcon.BalloonTipText.
NotifyIcon используется для значка в системном трее, который вы видите в правом нижнем углу экрана, использование ToolTip предназначено только для таких элементов управления, как текстовые поля, флажки и т.д.... например, допустим наличие текстового блока экземпляр, называемый "textBox1", в форме, чем это могло бы работать:
toolTip1.SetToolTip(textBox1, "Hello World");
Теперь, когда вы наводите указатель мыши на текстовое поле, отображается всплывающая подсказка...
Я не уверен, что вы можете установить всплывающую подсказку непосредственно на значке уведомления. Это то же самое, что и установка свойства text на самой иконке уведомления. Есть некоторые ограничения на значок значка уведомлений. Он ограничивается 128 символами и будет оставаться на короткое время. Если вы хотите отобразить больше информации в течение более длительного времени, вы должны посмотреть на свойство текста шара значка уведомления. Я настоятельно рекомендую прочитать страницу MSDN, это очень полезно.
http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx
Вы не должны.
NotifyIcon используется для отображения уведомлений, тогда как ToolTip используется для отображения информации о текущей активности пользователя, его следует использовать "на месте".
Проверьте правила пользовательского интерфейса:
Все значки в трее на моем компьютере имеют всплывающие подсказки. Вам необходимо создать свой NotifyIcon, используя конструктор, который принимает компонент в качестве аргумента. Он отображает свойство NotifyIcon.Text.
Мне удалось создать его с помощью кода примера здесь: http://msdn.microsoft.com/en-us/library/1by05f8d.aspx
using System;
using System.Drawing;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.NotifyIcon notifyIcon1;
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.ComponentModel.IContainer components;
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1()
{
this.components = new System.ComponentModel.Container();
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
// Initialize contextMenu1
this.contextMenu1.MenuItems.AddRange(
new System.Windows.Forms.MenuItem[] {this.menuItem1});
// Initialize menuItem1
this.menuItem1.Index = 0;
this.menuItem1.Text = "E&xit";
this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
// Set up how the form should be displayed.
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Notify Icon Example";
// Create the NotifyIcon.
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
// The Icon property sets the icon that will appear
// in the systray for this application.
notifyIcon1.Icon = new Icon("appicon.ico");
// The ContextMenu property sets the menu that will
// appear when the systray icon is right clicked.
notifyIcon1.ContextMenu = this.contextMenu1;
// The Text property sets the text that will be displayed,
// in a tooltip, when the mouse hovers over the systray icon.
notifyIcon1.Text = "Form1 (NotifyIcon example)";
notifyIcon1.Visible = true;
// Handle the DoubleClick event to activate the form.
notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);
}
protected override void Dispose( bool disposing )
{
// Clean up any components being used.
if( disposing )
if (components != null)
components.Dispose();
base.Dispose( disposing );
}
private void notifyIcon1_DoubleClick(object Sender, EventArgs e)
{
// Show the form when the user double clicks on the notify icon.
// Set the WindowState to normal if the form is minimized.
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;
// Activate the form.
this.Activate();
}
private void menuItem1_Click(object Sender, EventArgs e) {
// Close the form, which closes the application.
this.Close();
}
}