如何更改MessageBox文本内容

ck8*_*4vi 0 c# wpf messagebox

目前我有一个MessageBox.Show调用声明如下:

MessageBox.Show("Foo missing in configuration","Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)

我想要完成的是动态更改文本的内容.所以我做的是以下内容:

MessageBox.Show("Foo" + fooName + " missing  in configuration","Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)

其中fooName值之前设置的位置.

我只是想知道是否有办法这样做:

MessageBox.Show("Foo {0} missing in configuration", fooName, "Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)

这不是一个大问题.对我而言,如果它像上一个提案一样工作,它看起来/感觉更好.

也许有人知道实现这一目标的方法.

Pet*_*iho 5

有没有与MessageBox方法本身.但你总是可以使用string.Format()

MessageBox.Show(string.Format("Foo {0} missing in configuration", fooName),
    "Configuration Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找更方便的东西,您可以随时定义自己的方法:

public static void ShowMessageBox(string caption, MessageBoxButtons buttons, MessageBoxIcon icon, string format, params object[] formatArgs)
{
    MessageBox.Show(string.Format(format, formatArgs), caption, buttons, icon);
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样称呼它:

ShowMessageBox("Configuration Error", MessageBoxButtons.OK,
    MessageBoxIcon.Error, "Foo {0} missing in configuration", fooName);
Run Code Online (Sandbox Code Playgroud)

(注意:我重新排列了一些参数; params当然必须是最后一个,并且将格式放在它们之前将相关的参数保持在一起).