![](/img/trans.png)
[英]How to make a manually created button invisible after it is clicked in Windows Form?
[英]How do I make the close button of a Windows Form not close the form but make it invisible?
此表单具有NotifyIcon对象。 当用户单击“关闭”按钮时,我希望表单不要关闭但是变得不可见。 然后,如果用户想要再次看到该表单,他可以双击系统托盘中的图标。 如果用户想要关闭表单,他可以右键单击该图标并选择“关闭”。
有人能告诉我如何使关闭按钮不关闭表单但让它隐形吗?
(或者,如果有人能够想出一种更好的方法来实现同样的目标)
首先,您要处理Main表单的.FormClosing
事件(或通过覆盖OnFormClosing方法)。 通过将e.Cancel
设置为true来取消该操作。
然后,使用NotifyIcon
将图标添加到系统托盘。
最后,通过调用.Hide()
隐藏表单。
protected override void OnFormClosing(FormClosingEventArgs e) {
if (IActuallyWantToCloseFlag)
return;
var ni = new NotifyIcon(this.components)
{
Icon = someIcon,
Text = "My text",
Visible = true
};
ni.DoubleClick += (sender, args) => { this.Show(); };
this.Hide();
e.Cancel = true;
}
这应该让你开始。 您可能希望将ni
设为成员变量,以便在显示/隐藏表单时可以继续隐藏/显示图标。
您可以尝试将其设为托盘图标应用。 这里有一个很好的教程: http : //www.developer.com/net/net/article.php/3336751/C-Tip-Placing-Your-C-Application-in-the-System-Tray.htm
实现所需内容的最简单方法是订阅FormClosing事件并通过包含此类代码设置可见的false:
FormClosing += (sender, args) => { args.Cancel = true; Visible = false; };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.