在c# /WPF的MessageBox中,新行不能工作
本文关键字:新行 不能 工作 MessageBox WPF | 更新日期: 2023-09-27 17:50:11
简短的问题:我有一个字符串在我的资源:"这是我的测试字符串{0}'n'nTest"
我想在我的消息框中显示这个字符串:
MessageBox.Show(String.Format(Properties.Resources.About,
Constants.VERSION),
Properties.Resources.About_Title, MessageBoxButton.OK,
MessageBoxImage.Information);
但是我没有得到新的行。'n仍然显示为字符,而不是新行。
我还尝试使用像mystring这样的解决方案。替换("'n", Environment.NewLine),但这也不会改变任何东西。
我做错了什么?
编辑:有趣的是:Replace("'n", "somethingelse")不会改变任何东西。
Edit2: Shift+Enter在我的资源文件,而不是'n似乎工作…奇怪的行为
在你想要放新行的地方放一个占位符,在你使用该资源字符串的代码中,只需将其替换为new line: string resource: "这是第一行。{0}这是第二行。{0}这是第三行。"您将像这样使用这个资源字符串:MessageBox.Show(string. format (MyStringResourceClass. MyStringResourceClass.)
MyStringPropertyName Environment.NewLine));
或
非常规的方法但我刚刚通过直接从word(或任何其他地方)复制换行符使其工作&将其粘贴到资源字符串文件中。
It was simple..
OR
'r'n字符将被转换为新的行,当您使用消息框或将其分配给文本框或当您在界面中使用它时。
在c#中(像大多数C派生语言一样),转义字符用于表示特殊字符,如return和tab, +用于代替&用于字符串连接。
要使你的代码在c#下工作,你有两个选择…第一种是简单地将换行符替换为返回转义字符'n ala:
MessageBox.Show("this is first line" + "'n" + "this is second line");
另一种更正确的方法是将其替换为Environment。换行符,理论上可以根据您使用的系统而更改(尽管不太可能)。
MessageBox.Show("this is first line" + Environment.NewLine + "this is second line");
在资源编辑器中使用shift+enter分隔字符串内容。或者,在xml编辑器中编辑您的ResX文件,并使用enter键为您的资源字符串创建新行。
请参考此链接了解详细信息:ResX文件中的回车/行。
试试这个:
String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3", Environment.NewLine);
MessageBox.Show(outputMessage);
另一个变量的例子:
String anotherValue = "Line 4";
String outputMessage = string.Format("Line 1{0}Line 2{0}Line 3{0}{1}", Environment.NewLine, anotherValue);
MessageBox.Show(outputMessage);
试试这个
删除MessageBoxButtons。OK和MessageBoxImage。信息。
MessageBox.Show(String.Format(Properties.Resources.About,
Constants.VERSION),
Properties.Resources.About_Title);