当对话框的ShowInTaskBar = false时,如何通过任务栏关闭应用程序或模式对话框?

快克

我有一个应用程序(mainApp),它会打开一个模式对话框(collector),以询问登录详细信息。该对话框在右上角有一个取消按钮和一个标准关闭按钮,并带有FormBorderStyle = FixedDialog

如果设置collector.ShowInTaskBar = true,则可以右键单击任务栏中的对话框并将其关闭。对话框消失,主应用程序仍在运行。我也可以右键单击整个组,然后选择“关闭所有窗口”,这将关闭对话框和应用程序。

如果设置collector.ShowInTaskBar = false,则可以右键单击任务栏中的应用程序,然后单击关闭,但是什么也没有发生。

我不希望在任务栏中显示该对话框,但希望从任务栏关闭该应用程序后将其关闭。我怎样才能做到这一点?如果这不可能,我将只关闭对话框。

编辑:主窗体的FormClosing事件不被调用时 ShowInTaskBar = false

国王王

当您以这种方式关闭表单时,该消息WM_SYSCOMMAND将发送到表单窗口。我们可以使用一些有用的参数来捕获此消息以执行相应的操作。试试这个代码:

public partial class Form1 : Form {
   public Form1(){
     InitializeComponent();
   }
   bool shownModal;//This flag will be used to determine if there is some
                  //modal dialog opening.
   protected override void WndProc(ref Message m) {
        if (m.Msg == 0x112)//WM_SYSCOMMAND
        {
            //SC_CLOSE = 0xf060  
            if (m.WParam.ToInt32() == 0xf060 && 
                m.LParam.ToInt32() == 0 && shownModal)
            {
                //Your own code here
                //You can close the main form or close the modal dialog
                Close();
            }
        }
        base.WndProc(ref m);            
    }
}

注意:您必须shownModal在显示对话框之前打开标志,然后再关闭。这只是处理它的一种方法,您可以尝试自己的另一种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当对话框的ShowInTaskBar = false时,如何通过任务栏关闭应用程序或模式对话框?

来自分类Dev

单击对话框本身时关闭对话框

来自分类Dev

在关闭对话框后再次打开对话框时,应用程序崩溃并给出“ java.lang.IllegalStateException”

来自分类Dev

关闭模态对话框后应用程序退出

来自分类Dev

对话框的单独任务栏按钮

来自分类Dev

通过外部应用程序打开松弛对话框

来自分类Dev

关闭主对话框后关闭对话框

来自分类Dev

关闭警报对话框

来自分类Dev

硒:关闭对话框

来自分类Dev

JQuery 对话框关闭

来自分类Dev

无法关闭对话框

来自分类Dev

如何从终端打开“运行应用程序”对话框?

来自分类Dev

dlg.DoModal()使对话框成为应用程序的模式,而不是前一个对话框的模式

来自分类Dev

角形对话框

来自分类Dev

出现对话框

来自分类Dev

JavaFX对话框

来自分类Dev

Inkscape对话框

来自分类Dev

单击对话框

来自分类Dev

JavaFX对话框

来自分类Dev

悬停对话框

来自分类Dev

权限对话框

来自分类Dev

动态对话框

来自分类Dev

移动应用程序如何防止当我在此对话框外单击时未关闭确认框

来自分类Dev

Qt:关闭模式对话框关闭程序

来自分类Dev

Facebook显示登录对话框而不是应用程序请求对话框

来自分类Dev

基于 MFC 对话框的应用程序无法两次调用对话框

来自分类Dev

触摸外部时关闭对话框

来自分类Dev

当DM应用程序窗口最小化时,如何处理由延迟任务发布的模式对话框?

来自分类Dev

从组件外部触发打开全屏对话框工作,打开时如何关闭对话框