创建一个像Windows Messenger或AVG一样的弹出气球

时间:2009-01-05 16:21:42

标签: c# .net popup-balloons

如何创建弹出气球,就像您从Windows Messenger或AVG或Norton或其他任何人那样创建?

我想让它显示信息,然后在几秒后滑开。

编辑:它需要像Form.ShowDialog()一样阻止,因为程序在显示通知后退出

4 个答案:

答案 0 :(得分:20)

您可以使用属于.NET 2.0 System.Windows.Forms的notifyIcon控件。这允许您在系统托盘中放置应用程序的图标。然后,您可以在其上调用ShowBalloonTip(int timeOut)方法。但是,请务必先在notifyIcon上设置文本和图标属性,以使其正常工作。小代码示例:

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);
        }

编辑:好的,所以notifyIcon不适合你。我的第二个建议是为此创建自己的控件。实际上,我会使用一个表格。一个简单的表单,没有边框,没有控制框,只有一个计时器运行,所以你可以设置不透明度淡入/淡出。然后,您可以使用Rectangle Screen.PrimaryScreen.WorkingArea轻松获取屏幕的右下角。然后只需在那个位置显示你的表格。

答案 1 :(得分:11)

不要创建模态(阻塞)气球。请。这些UI设计的一个重要部分是它们不是对话框:它们是瞬态的,可能是非交互式元素,旨在向用户提供附带信息< em>没有必然会打断他们的工作流程。一个窃取焦点并阻止用户输入的气球充其量只会令人恼火 - 如果你需要一个对话框,那就使用一个对话框。

答案 2 :(得分:6)

您可能希望查看本文http://www.codeproject.com/KB/miscctrl/RobMisNotifyWindow.aspx,其中包含显示类似MSN Messenger的通知窗口的代码

答案 3 :(得分:1)

.NET 1.1 Visual Basic Power Pack有烤面包机控制。