如何使用C#在Windows应用程序(非Web)中从系统托盘创建表单弹出窗口

3
我有一个C#的WINFORM应用程序,主窗体通常是最小化的。当发生某些事件时,我想创建一个小弹出窗口,在托盘图标上方显示动画和消息,单击它会将主窗体带到前台。
要实现这一点,我只需创建简单的窗体吗?还是有特殊的系统窗体可用? 例如,有一个弹出消息提醒有新邮件的MSN Messenger。
提前感谢您的回复。
6个回答

4

1

我曾经成功地使用WinForms中的NotifyIcon控件。在你的表单中添加一个NotifyIcon,然后在事件处理程序中调用它的ShowBalloonToolTip函数来显示你的消息。为NotifyIcon.DoubleClick事件定义一个事件处理程序,并弹出你的主窗口。一定要同时隐藏气球消息。

如何做到这一点的一个不错的例子可以在这里找到。

相同的技术也推荐在WPF中使用,尽管我不喜欢在WPF应用程序中包含WinForms组件。我以前做过,但它会伤害灵魂。


1

1
你可以创建一个(无边框的)窗体来实现这个功能。你可能还想看一下优秀的Transitions库,以实现淡入淡出、平滑滑动或调整大小等效果。

1

form.showdialog()应该在form是一个窗体类的实例时工作。 对于一些代码,您可以参考 WorkingWithWinForms

如果您想显示一个问题或信息,您可以使用MessageBox。这里有一个 messagebox-show


0

你应该创建一个普通表单。

如果你不想要普通的窗口边框(标题栏和框架),将FormBorderStyle设置为None


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接