繁体   English   中英

如何使用 c# 从 windows 应用程序(非 Web)上的系统托盘创建表单弹出窗口

[英]How to create form popup from from system tray on windows application (not web) with c#

我在 c# 中有一个 winform 应用程序。 主窗体通常被最小化。 当某些事件发生时,我想创建一个小的弹出窗体,在托盘图标上方带有消息,单击它,将弹出主窗体。

为了实现这一点,我只是创建简单的表单? 或者有特殊的系统形式? 例如,有一个弹出消息,用 msn messenger 提醒新邮件。

提前致谢。

这是一个涵盖该主题的SO问题 您要查找的内容称为“吐司”消息。

我已经成功使用WinForms 中的 NotifyIcon 控件 在您的表单中添加一个 NotifyIcon,然后在您的事件处理程序中调用它的ShowBalloonToolTip function以显示您的消息。 NotifyIcon.DoubleClick 事件定义一个事件处理程序,并弹出您的主 window。 确保也隐藏气球消息。

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

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

msn 使用的“Toast”弹出窗口是自定义的,但是 notifyicon 上有一个内置的 ShowBalloonTip 方法

请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx

您可以创建一个(无边界)表单来执行此操作。 您可能还想在出色的过渡库中获得战利品,用于淡入/淡出、四处滑动或平滑调整大小。

form.showdialog()应该在 form 是 class 的实例的情况下工作。 部分代码可以参考WorkingWithWinForms

如果要显示问题或信息,可以使用MessageBox 这是一个messagebox-show

您应该创建一个正常的表单。

如果您不想要普通的 window chrome(标题栏和框架),请将FormBorderStyle设置为None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM