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

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

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

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

您可以使用作为.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轻松获取屏幕的右下角。 然后只需在那个位置显示你的表格。

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

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

.NET 1.1 Visual Basic Power Pack有一个烤面包机控件。