2013-12-16 32 views
5

Dikkat edilmesi gereken yeni bir mesaj aldıklarında kullanıcıyı uyarmak için NotifyIcon kullanıyoruz. Bir başkasının mesaja ilk olarak ulaşması durumunda, bildirim simgesi tekrar gizlenmelidir, ancak balonun arkasından kodun nasıl kapatılacağını bulmakta sorun yaşıyorum.NotifyIcon BallonToolTip'i koddan nasıl kapatabilirim?

Benim kod şöyle görünür: Ben here bulundu önerileri denedi

myNotifyIcon.ShowBalloonTip(2000, title, message, icon); 

, ama hiçbiri uygundur.

  • bunu gizler myNotifyIcon.Visible = false; myNotifyIcon.Visible = true; Kullanılması bunu

  • gizlemez myNotifyIcon.Visible = true kullanarak, ama aynı zamanda tepsiye simgeyi gizleyen ve onu tekrar gösterildiğinde, bu bir farklı bir konum gösterir.

  • myNotifyIcon.Show(0)

  • myNotifyIcon.ShowBalloonTip(0) veya myNotifyIcon.ShowBalloonTip(1) balon olarak sadece gösterileceğini çalışmak görünmez ve hiç kendi başına gitmesini görünmüyor geçerli bir yöntem değildir.

pencereyi bulmak ve ona WM_CLOSE mesaj göndermek için WinAPI kullanmayla ilgili this question okumak, ama güvenilir bunun nasıl çok emin değilim.

NotifyIcon kodunu arkadan nasıl kapatabilirim?

+0

OMG Rachel winforms şeyler yapıyor musunuz? –

+0

Denemeyi denediniz notifyIcon.Icon = null; – techno

+1

Yerel winapi işlevi tarafından desteklenmiyor. Ham çözüm, NotifyIcon'u elden çıkarmaktır. –

cevap

1

Bunu yapmak için habersiz bir yol bulamadım. belgeler söyler:

Minimum ve maksimum zaman aşımı ancak bu işletim sistemine bağlı olarak değişebilir, sırasıyla işletim sistemi tarafından uygulanır ve 10 ve 30 saniye tipik değer verir. çok büyük veya çok küçük olan zaman aşımı değerleri, uygun minimum değere veya maksimum değerine ayarlanır. Bu özellikle açıkça balonu kapanış sorusuna cevap olmasa da

, bunun gösterilmiştir işlemi tamamlandıktan sonra ShowBalloonTip() metodunun arayanlar basitçe, balon üzerinde tam kontrole sahip olmadığını bana gösterir.

buldum iyi seçenek

zaten söz biridir:

myNotifyIcon.Visible = false; 
myNotifyIcon.Visible = true; 

İdeal değil, ama işe yarıyor. Başka bir fikir önceki ileti eskimiş olduğunu belirtmek için balon görüntülenen mesajı değiştirmek olacaktır:

myNotifyIcon.ShowBalloonTip(2000, "Title", "Never mind!", ToolTipIcon.Info); 
0

bunu basit bir yolu yoktur.

myNotifyIcon.ShowBalloonTip(2000); 
myNotifyIcon.visible = true; 
this.Hide(); 

Bunu deneyin, kesinlikle% 100 çalışacaktır.

İlgili konular