C# 安装程序顶部或应用程序关闭后是否显示消息框?

C# 安装程序顶部或应用程序关闭后是否显示消息框?,c#,.net,installation,messagebox,C#,.net,Installation,Messagebox,因此,在我的安装程序中,我将一个命令行参数发送到我的程序以注册服务器,然后创建一个messagebox,指示注册成功,然后程序关闭 现在这里的一个问题是,安装程序停止并等待程序关闭后再继续。另一个问题是,此消息显示在安装程序窗口后面,因此用户可能会错过此消息,并认为安装程序有故障 是否仍然需要将messagebox显示在安装程序前面?请注意,我已经尝试使用MessageBox.Show(这是“myMessage”)但是这实际上使messagebox根本不出现 然后,有没有一种方法可以在关闭应用程

因此,在我的安装程序中,我将一个命令行参数发送到我的程序以注册服务器,然后创建一个messagebox,指示注册成功,然后程序关闭

现在这里的一个问题是,安装程序停止并等待程序关闭后再继续。另一个问题是,此消息显示在安装程序窗口后面,因此用户可能会错过此消息,并认为安装程序有故障

是否仍然需要将messagebox显示在安装程序前面?请注意,我已经尝试使用
MessageBox.Show(这是“myMessage”)但是这实际上使messagebox根本不出现

然后,有没有一种方法可以在关闭应用程序的同时让消息框保持打开状态?还是让安装程序继续运行,即使应用程序仍然打开

以下是我正在使用的安装程序项目:

您不需要将此
作为第一个参数发送。这通常是暗示的。话虽如此,它也不会对你正在做的事情产生负面影响。这可能会有很多不同的论点。请在此处查看:

您可以编辑
消息框
中的
标题
图标
,以及
按钮


如果我们能看到所涉及的其余代码,它将有助于解决您的问题。

我通过这样调用,将消息框显示在所有其他应用程序的顶部:

                    MessageBox.Show(
                        "Server registered successfully!", 
                        "Gyptech Micrometer OPC Server",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information,
                        MessageBoxDefaultButton.Button1,
                        MessageBoxOptions.DefaultDesktopOnly);

最重要的部分是最后一个参数,
MessageBoxOptions.DefaultDesktopOnly
。现在,该框显示在安装程序顶部:)

这是一种不必要的黑客行为,除非您的安装程序实际运行在不同的桌面上。您要做的是为对话框指定所有者窗口,这是
Show
的某些重载中的第一个参数。您试图传递
,但没有说明此是什么。它需要是您的安装程序窗口,即当前位于前台的窗口。这样,如果它显示一个拥有的窗口,则拥有的窗口将始终位于前面,因为拥有的窗口在Z顺序上始终位于其父窗口的前面。@CodyGray这很有意义……只是不确定如何做到这一点。嗯,从synstax的角度来说,我该如何编写类似于“thisInstallerWindow”的东西,而不仅仅是
这个
?@CodyGray如果你知道如何编写你建议的答案,你介意用示例代码作为答案吗?这可能对我帮助最大。:)嗯,我不知道您的安装程序代码是什么样子的,否则我会在第一条评论中建议您使用它。:-)问题中没有足够的信息可以说明。通常,如果
是希望在其顶部显示对话框的窗体/窗口,则
就足够了。一旦您弄清楚所有者窗口应该是什么,编码部分就很简单了。这是我在没有看到更多代码的情况下不知道的部分。@CodyGray哦,是的,事情是这样的。我还没有真正创建一个安装程序类。我不确定这是如何工作的,但我使用的是“安装项目”,这是我从名为installer for visual studio 2015的扩展中获得的模板。你知道我说的那个吗?我想我正在努力弄清楚安装程序窗口的名称以及如何访问它。我根本不清楚这是如何回答这个问题的。您只需对MessageBox.Show函数的工作原理进行大致正确的概述。如果您的目标是说我们需要查看代码的其余部分以提供帮助,那么您应该将其作为注释而不是答案发布。感谢Cody的宝贵见解。看起来我把他推荐给MSDN确实帮助他解决了问题,但我知道什么?这将是另一个令人信服的理由,可以将其作为评论发布,因为这是朝着正确的方向推进,而不是一个独立的答案。说清楚点,我不想让你对我的评论生气。我只是不明白这是如何回答实际问题的,这是一个关于在另一个应用程序/窗口顶部显示消息框的相当具体的问题,虽然您提供的信息肯定很有用,但我认为它更适合作为评论。关于什么是答案,我们有非常严格的标准。同样,在我的答案发布后,Doe先生似乎找到了他想要的东西。如果你认为我的答案无关紧要或不够充分,那么你可以发布自己的答案,进一步澄清问题。我知道你试图成为堆栈溢出内容的英雄,但你的评论和编辑远没有我的答案有价值。我没有生气,只是如果你没有任何贡献就不要批评。
                    MessageBox.Show(
                        "Server registered successfully!", 
                        "Gyptech Micrometer OPC Server",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information,
                        MessageBoxDefaultButton.Button1,
                        MessageBoxOptions.DefaultDesktopOnly);