Witam,
chciałbym w swoim programie użyć chmurek, które oferowane są przez klasę notifyIcon. Niestety metoda ShowBalloonTip jest zbugowana i nie można nadać jej czasu, przez jaki chmurka będzie się wyświetlać. Wobec czego chciałem wyjść na przeciw problemowi i napisałem coś takiego:
ShowBalloonWindow(40);
private void ShowBalloonWindow(int timeout)
{
int timeoutCount = 0;
while (timeoutCount < timeout)
{
notifyIcon.ShowBalloonTip(timeout, " ", " ", ToolTipIcon.None);
//System.Threading.Thread.Sleep(1000);
timeoutCount++;
}
}
W tym momencie napotkałem też problem - System.Threading zawiesza całą aplikację i nie da się nic zrobić przez te 40 sekund. A chciałbym by obyło się bez tego. Chciałbym także by chmurkę można było zamknąć. Pytanie do was: Czego mogę użyć, by działało to tak, jakbym chciał?
Z góry dziękuję, za wszelkie pomysły i sugestie.
Edit:
Ok, poradziłem sobie. Użyłem timera:
public static class MyGlobals
{
public static int t = 15;
}
A następnie:
Timer timer = new Timer();
timer.Tick += new EventHandler(timer1_Tick);
timer.Interval = (1000);
timer.Enabled = true;
timer.Start();
private void timer1_Tick(object sender, EventArgs e)
{
if (MyGlobals.t > 0)
{
notifyIcon.ShowBalloonTip(1, " ", " ", ToolTipIcon.None);
MyGlobals.t--;
}
if (MyGlobals.t == 0)
timer1.Stop();
}