启动最小化到托盘的 WinForm 应用程序
创建最小化到托盘的 WinForm 应用程序时,您可能会遇到启动应用程序的问题最小化。这可能会导致启动应用程序时出现可见的标题栏伪像或不正确的行为。
问题:应用程序最小化但出现在 Alt-Tab 中
要解决此问题,请更改FormBorderStyle 属性设置为 ToolWindow 选项之一。但是,这可能会引入一个新问题,即在最小化启动应用程序时,标题栏会暂时可见。
解决方案:重写 SetVisibleCore()
启动应用程序的推荐方法最小化且没有任何可见工件的应用程序是重写 SetVisibleCore() 方法。这是一个实现:
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
在此示例中,allowVisible 标志确保表单仅在用户明确请求时可见。
处理表单关闭
防止在以下情况下从任务栏或 alt-tab 关闭应用程序最小化,覆盖 OnFormClosing() 方法:
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
allowClose 标志确保表单仅在用户明确请求时关闭。
其他注意事项
请注意Load 事件在表单首次显示之前不会触发。因此,请在表单的构造函数而不是 Load 事件处理程序中执行初始化。
以上是如何在没有工件的情况下启动最小化到系统托盘的 WinForms 应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!