[英]WinForms Taskbar Icon - Click Event not firing
我創建了一個使用NotifyIcon類的非形式 c#程序。
當我將鼠標懸停時,將顯示文本“(單擊以激活)”。 所以我正在處理一些事件。
但是,不會觸發“點擊”事件,並且不會顯示“上下文”菜單。
public class CTNotify
{
static NotifyIcon CTicon = new NotifyIcon();
static ContextMenu contextMenu = new ContextMenu();
static void Main()
{
//Add a notify Icon
CTicon.Icon = new Icon("CTicon.ico");
CTicon.Text = "(Click to Activate)";
CTicon.Visible = true;
CTicon.Click += new System.EventHandler(CTicon_Click);
//Create a context menu for the notify icon
contextMenu.MenuItems.Add("E&xit");
//Attach context menu to icon
CTicon.ContextMenu = contextMenu;
while (true) //Infinite Loop
{
Thread.Sleep(300); //wait
}
}
private static void CTicon_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Clicked!");
}
}
為什么不創建表單應用程序,而在初始化時僅隱藏表單? 我從來沒有遇到過使用這種方法的通知圖標的問題
看一下Shell_NotifyIcon() API方法,該方法實現了NotifyIcon。 單擊進入NOTIFYICONDATA結構。 該結構的第二個成員是窗口句柄:
窗口的句柄,用於接收與通知區域中的圖標相關的通知
您沒有窗口,因此無法接收通知。 您必須將NotifyIcon放在表單上。 並使用Application.Run()獲取通知並激活事件處理程序。
通過粘貼以下代碼來隱藏表單:
protected override void SetVisibleCore(bool value) {
if (!this.IsHandleCreated) {
this.CreateHandle();
value = false;
}
base.SetVisibleCore(value);
}
我有一個同樣的問題,當我使用.hide()事件隱藏Hans提供的表單或SetVisibleCore時,單擊或任何鼠標事件都不會觸發。
有人還有其他解決方案嗎?
PS當表格可見時,一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.