C# 隐藏.NET MessageBox';任务栏图标

C# 隐藏.NET MessageBox';任务栏图标,c#,.net,winforms,messagebox,C#,.net,Winforms,Messagebox,是否可以调用staticMessageBoxclassShow()方法,使其没有任务栏图标或自定义图像?我正试图找到一种替代方法来构建定制的MessageBox类 谢谢 我尝试通过以下方式启用DefaultDesktopOnly选项: if (MessageBox.Show("Are you sure you would like to do something?", "Title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, Messa

是否可以调用static
MessageBox
class
Show()
方法,使其没有任务栏图标或自定义图像?我正试图找到一种替代方法来构建定制的
MessageBox

谢谢

我尝试通过以下方式启用
DefaultDesktopOnly
选项:

if (MessageBox.Show("Are you sure you would like to do something?", "Title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
{
    //Do stuff
}

然而,任务栏上仍然有一个图标,主窗体也开始崩溃。如果重要的话,我在Win7中。
DefaultDesktopOnly
是否存在稳定性问题?

使用MessageBoxOptions枚举

MessageBoxOptions.DefaultDesktopOnly

您需要为
消息框
提供一个拥有(或不拥有)自身图标的所有者窗口,以使对话框不会自行显示。如果从打开的表单调用
消息框
,则可以将表单作为第一个参数传递,使其成为其所有者:

// Assume "this" is a form, not valid from any other class
if (MessageBox.Show(this, "Are you sure you would like to do something?", "Title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
{
    //Do stuff
}
但是,如果您的程序目前没有其他可见的GUI,您可以简单地创建一个虚拟表单,只是为了向其提供所有者,如下所示:

// A new, invisible form is created as the MessageBox owner, this prevents it from appearing in the taskbar
if (MessageBox.Show(new Form(), "Are you sure you would like to do something?", "Title", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
{
    //Do stuff
}
不可能


MessageBox功能按原样提供给我们。有些项目是可配置的,有些则不是。网上有很多选择。查看CodeProject,他们有一些。

你确定吗(顺便说一句,这是该选项的一种副作用,但它不是专为该选项设计的,它会带来许多其他缺点)。这是他想要的吗?我现在不能提供一个替代方案,但这确实有效,将查看替代方案Would MessageBoxIcon。没有一个是可行的选择@很不幸,OnoSendai只在实际的messagebox中设置了图标。我不久前遇到了一个类似的问题,创建自己的自定义类比自定义messagebox类要简单得多…@Arie是的,我想可能就是这样。我想我会在所有热门人物都在场的情况下最后一次试一试。那么,亚历杭德罗的回答有什么问题吗?它解决了你的问题吗?虽然MessageBox确实是“原样”的,没有超出给定选项的进一步定制的可能性,但这种特殊情况是可能的,只要给它一个所有者。是的,被密封和静态这就是我想的。这是一个远大的希望,但我想我会问。是的,我已经做了一个很好的替代品。