使用c#将Messagebox.show()保存在其他应用程序之上

Anu*_*uya 37 c#

如何使用c#将Messagebox.show()保存在其他应用程序之上?

Mik*_*Dub 71

我尝试了donutboy提供的解决方案,它似乎不接受0x40000(或40000)作为MessageBoxOptions枚举值的有效选项.

但是我发现使用MessageBoxOptions.DefaultDesktopOnly具有相同的效果,并将MessageBox保持在最顶层,直到用户确认.即.

MessageBox.Show("Hello there", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
Run Code Online (Sandbox Code Playgroud)

这可能是最简单的原生解决方案.

  • 是的,我发现这个也有效!有几个建议,但我同意这是最容易实施的建议。 (2认同)

小智 26

没有创建新表单,有一个更好的解决方案.

MessageBox.Show("Message Text", "Header", MessageBoxButtons.OK, MessageBoxIcon.None, 
     MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000);  // MB_TOPMOST
Run Code Online (Sandbox Code Playgroud)

0x40000是"MB_TOPMOST"-Flag.


Dav*_*ave 13

处理这个的另一个简单方法:

MessageBox.Show(new Form { TopMost = true }, "This is TopMost", "TopMost", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Run Code Online (Sandbox Code Playgroud)