You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSTO Outlook:如何避免Outlook退出时弹出任务窗格提示框

解决Outlook退出时自定义任务窗格VisibleChanged事件弹出提示框的问题

你想到的用布尔变量标记退出状态的思路完全可行,具体实现步骤如下:

  • 首先在类中定义一个私有布尔变量,用来标记Outlook是否正在退出:

    private bool _isOutlookQuitting = false;
    
  • 订阅Outlook Application的Quit事件,在退出触发时把变量设为true:

    // 在AddIn初始化或者任务窗格创建的地方添加订阅
    Globals.ThisAddIn.Application.Quit += Application_Quit;
    
    private void Application_Quit()
    {
        _isOutlookQuitting = true;
    }
    
  • 修改你的VisibleChanged事件处理逻辑,先判断退出状态,再决定是否弹出提示并阻止关闭:

    private void myCtp_VisibleChanged(object sender, EventArgs e)
    {
        // 如果Outlook正在退出,直接返回,不做任何处理
        if (_isOutlookQuitting) return;
    
        CustomTaskPane ctp = sender as CustomTaskPane;
        // 检查任务窗格是否被用户尝试关闭(Visible变为false)
        if (!ctp.Visible)
        {
            // 弹出提示告知无法关闭
            MessageBox.Show("此任务窗格无法关闭,请继续使用。");
            // 强制将任务窗格设为可见,阻止关闭操作
            ctp.Visible = true;
        }
    }
    

这样就能避免Outlook退出时触发提示框,同时正常拦截用户手动关闭任务窗格的操作。

内容的提问来源于stack exchange,提问作者Willy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:50:34