首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >接近托盘的C# (就像msn messenger)

接近托盘的C# (就像msn messenger)
EN

Stack Overflow用户
提问于 2010-07-28 11:27:39
回答 3查看 2.6K关注 0票数 5

我有一个c# .net应用程序。所以我创建了一个放在托盘中的notifyIcon。我想要做的是,当用户点击表单上的"x“按钮时,我希望它靠近托盘。他们应该只能通过使用托盘图标中的上下文菜单退出程序。

所以我所做的是,在form close事件中,我检查表单是否可见。如果它是可见的,我将它设置为不可见,并将showInTaskbar设置为false (模拟最小化到托盘)如果表单已经不可见,那么他们可能正在从托盘中关闭它,所以在这种情况下我将退出程序。

然而,我的问题是,如果窗口是可见的,但他们右键单击托盘图标的上下文菜单并点击退出,我需要退出程序,而不是最小化。

我该如何解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-28 11:35:12

试试这个:

代码语言:javascript
运行
复制
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();

票数 3
EN

Stack Overflow用户

发布于 2010-07-28 11:33:02

您可能希望基于用户的操作跟踪应用程序的状态,因为这不一定反映在窗口的状态中。因此,当用户从菜单中选择Exit时,您需要设置一个标志来指示您确实正在退出,而不仅仅是隐藏窗口。

票数 0
EN

Stack Overflow用户

发布于 2010-07-28 11:35:53

只需使您的上下文菜单关闭事件调用Application.Exit()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3349709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档