简短的问题:我的资源中有一个字符串:“这是我的测试字符串{0} \ n \ nTest”
我试图在我的消息框中显示此字符串:
MessageBox.Show(String.Format(Properties.Resources.About,
Constants.VERSION),
Properties.Resources.About_Title, MessageBoxButton.OK,
MessageBoxImage.Information);
但是我没有换行。\ n仍然显示为字符,而不是新行。
我也尝试使用像mystring.Replace(“ \ n”,Environment.NewLine)这样的解决方法,但这也没有任何改变。
我究竟做错了什么?
编辑:有趣的事情要提到:Replace(“ \ n”,“ somethingelse”)不会改变任何东西。
Edit2:在我的资源文件而不是\ n中按Shift + Enter似乎可以正常工作……反正行为异常
将占位符放在要添加新行的位置,并在使用该资源字符串的代码中,将其替换为新行:string resource:“这是第一行。{0}这是第二行。{0}这是第三行。” 您将像下面这样使用此资源字符串:MessageBox.Show(string.Format(MyStringResourceClass.MyStringPropertyName,Environment.NewLine)));
要么
非常规方法但是,我现在可以通过直接从单词(或其他任何地方)处理换行符并将其粘贴到资源字符串文件中来使其工作。
It was simple..
OR
当您使用消息框显示该字符或将其分配给文本框时,或者在界面中使用该字符时,\ r \ n字符都将转换为新行。
在C#中(像大多数C派生语言一样),转义字符用于表示特殊字符,例如return和tab,而+代替&表示字符串连接。
为了使您的代码在C#下工作,您有两种选择……第一种是简单地将NewLine替换为返回转义字符\ n ala:
MessageBox.Show("this is first line" + "\n" + "this is second line");
另一种方法,更正确的方法是用Environment.NewLine代替它,理论上它可能会根据您所使用的系统而发生变化(但是不太可能)。
MessageBox.Show("this is first line" + Environment.NewLine + "this is second line");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句