我有一个c# .net应用程序。所以我创建了一个放在托盘中的notifyIcon。我想要做的是,当用户点击表单上的"x“按钮时,我希望它靠近托盘。他们应该只能通过使用托盘图标中的上下文菜单退出程序。
所以我所做的是,在form close事件中,我检查表单是否可见。如果它是可见的,我将它设置为不可见,并将showInTaskbar设置为false (模拟最小化到托盘)如果表单已经不可见,那么他们可能正在从托盘中关闭它,所以在这种情况下我将退出程序。
然而,我的问题是,如果窗口是可见的,但他们右键单击托盘图标的上下文菜单并点击退出,我需要退出程序,而不是最小化。
我该如何解决这个问题?
发布于 2010-07-28 11:35:12
试试这个:
bool _closingFromMenu;
void NOTIFYICON_EXIT_MENU_HANDLER(object sender, EventArgs e)
{
_closingFromMenu = true;
Close();
}
//form closing handler
FormClosing +=(a,b) =>{
if(_closingFromMenu){
Close();
}
else{
e.Cancel = true;
//do minimize stuff;
}
}或者,如果只有一个表单,可以在上下文菜单项处理程序中调用Application.Exit();
发布于 2010-07-28 11:33:02
您可能希望基于用户的操作跟踪应用程序的状态,因为这不一定反映在窗口的状态中。因此,当用户从菜单中选择Exit时,您需要设置一个标志来指示您确实正在退出,而不仅仅是隐藏窗口。
发布于 2010-07-28 11:35:53
只需使您的上下文菜单关闭事件调用Application.Exit()
https://stackoverflow.com/questions/3349709
复制相似问题