10

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

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

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

4

3 回答 3

21

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

于 2009-01-05T16:37:17.947 回答
11

不要创建模态(阻塞)气球。请。这些 UI 设计的很大一部分是它们不是对话框:它们是临时的、潜在的非交互元素,旨在向用户提供附带信息,不必中断他们的工作流程。一个窃取焦点并阻止用户输入的气球充其量只会令人恼火——如果你需要一个对话框,那么就使用一个对话框。

于 2009-01-05T17:23:18.667 回答
1

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

于 2009-01-05T16:46:07.210 回答