views:

2555

answers:

4

How can I create a Popup balloon like you would see from Windows Messenger or AVG or Norton or whomever?

I want it to show the information, and then slide away after a few seconds.

Edit: It needs to be blocking like Form.ShowDialog() because the program exits after displaying the notification

+3  A: 

You might want to look at this article http://www.codeproject.com/KB/miscctrl/RobMisNotifyWindow.aspx which has code to display an MSN Messenger-like notification window

rravuri
IS there any way to make this blocking?
Malfist
+4  A: 

You can use the notifyIcon control that's part of .NET 2.0 System.Windows.Forms. That allows you to place an icon for your application in the System Tray. Then, you can call the ShowBalloonTip(int timeOut) method on that. Be sure however to first set the text, and icon properties on the notifyIcon for it to work. Small code sample:

private void button1_Click(object sender, EventArgs e)
        {
            this.notifyIcon1.BalloonTipText = "Whatever";
            this.notifyIcon1.BalloonTipTitle = "Title";
            this.notifyIcon1.Icon = new Icon("icon.ico");
            this.notifyIcon1.Visible = true;
            this.notifyIcon1.ShowBalloonTip(3);
        }

EDIT: Ok, so notifyIcon won't work for you. My second suggestion would then be to create your own control for this. Actually, I would use a form. A simple form, with no borders, and no control box and just have a timer running so you can set the Opacity for fade in/out. Then, you can easily get the bottom right of the screen using the Rectangle Screen.PrimaryScreen.WorkingArea. Then just show your form at that position.

BFree
I'm showing this before a form is created so NotifyIcon is not an option
Malfist
And NotifyIcon doesn't display what I want it to either.
Malfist
+1  A: 

The .NET 1.1 Visual Basic Power Pack had a toaster control.

jwmiller5
How can I use it? I've downloaded and installed the PowerPack 3.0 but I don't know how to get the class
Malfist
That's for visual studio 2005
Malfist
+5  A: 

Don't create a modal (blocking) balloon. Please. A big part of the design of these UIs is that they are not dialogs: they're transient, potentially non-interactive elements, intended to provide incidental information to a user without necessarily interrupting their workflow. A balloon that steals focus and blocks user input would be irritating at best - if you need a dialog, then use a dialog.

Shog9
The reason for the need for a blocking Notification Window is because the program exits after it's been displayed. If it is not blocking then it is never shown.
Malfist
Then at very least, please hide or destroy any other UI your program displays prior to displaying the balloon. In this way, you can avoid the perception of a blocking balloon by shielding the user from anything it might otherwise block.
Shog9
The UI is not shown. The only time the balloon will appear is when the program has command line arguments. The command line argument will be a phone number from another application signaling the user has a call. If the phone number isn't in the database, that is when the balloon will be shown.
Malfist
Perhaps you would be better off leaving the UI up to your other program then. Pass back a return code indicating the error instead of blocking. There, now your program is both faster and more responsive.
Shog9
I cannot touch the other program, it's closed source.
Malfist