如何用代码实现textbox换行
2008-10-20 08:20
344 查看
要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true。
这个大家都知道,可是当你要在代码中为Text属性设置多行文本的时候可能会遇到点麻烦:)
你往往会想到直接付给一个含有换行符"/n"的字符串给Text属性:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = "First Line/nSecond Line/nThird Line"; 可是实际运行的时候你却发现它始终不会换行,显示的结果为"First LineSecond LineThirdLine"。
其实主要是因为TextBox运行在Windows上。Windows能够显示的换行必须由两个字符组成:carriage return & line feed,也就是必须是"/r/n"。如果只是"/n"在Windows中不能显示为换行的,这与Linux/Unix等其他的操作系统不一样。所以上边如果把"/n"替换成"/r/n"就可以了。
其实问题仍然没有很好的解决,因为用"/r/n"能够满足Windows的要求了,但是如果是其他平台怎么办?为了要确保让换行效果在各种平台上都能够正常的显示,请用Environment.NewLine。它可以确保在不同的平台下都能够返回正确的换行字符,在Windows下是/r/n,在 Linux(Mono)下就应该是/n了。 所以上面的代码应该写成:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = "First Line" +
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Environment.NewLine + "Second Line" +
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Environment.NewLine + "Third Line";
另外你也可以用verbatim string literal(用@开始的字符串)的形式来输入换行符:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = @"First Line
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Second Line
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Third Line"; 这种形式在代码中看起来很直观,但是如果代码编辑器是在Windows下运行的,仍然相当于输入了/r/n。
Environment是一个静态类,位于System名称空间下,提供对当前程序的运行环境和平台的相关信息的访问。它提供了很多有用的静态属性和方法:
具体的可以参考MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemenvironmentmemberstopic.asp
这个大家都知道,可是当你要在代码中为Text属性设置多行文本的时候可能会遇到点麻烦:)
你往往会想到直接付给一个含有换行符"/n"的字符串给Text属性:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = "First Line/nSecond Line/nThird Line"; 可是实际运行的时候你却发现它始终不会换行,显示的结果为"First LineSecond LineThirdLine"。
其实主要是因为TextBox运行在Windows上。Windows能够显示的换行必须由两个字符组成:carriage return & line feed,也就是必须是"/r/n"。如果只是"/n"在Windows中不能显示为换行的,这与Linux/Unix等其他的操作系统不一样。所以上边如果把"/n"替换成"/r/n"就可以了。
其实问题仍然没有很好的解决,因为用"/r/n"能够满足Windows的要求了,但是如果是其他平台怎么办?为了要确保让换行效果在各种平台上都能够正常的显示,请用Environment.NewLine。它可以确保在不同的平台下都能够返回正确的换行字符,在Windows下是/r/n,在 Linux(Mono)下就应该是/n了。 所以上面的代码应该写成:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = "First Line" +
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Environment.NewLine + "Second Line" +
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Environment.NewLine + "Third Line";
另外你也可以用verbatim string literal(用@开始的字符串)的形式来输入换行符:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
aTextBox.Text = @"First Line
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Second Line
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Third Line"; 这种形式在代码中看起来很直观,但是如果代码编辑器是在Windows下运行的,仍然相当于输入了/r/n。
Environment是一个静态类,位于System名称空间下,提供对当前程序的运行环境和平台的相关信息的访问。它提供了很多有用的静态属性和方法:
具体的可以参考MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemenvironmentmemberstopic.asp
相关文章推荐
- 如何用代码实现textbox换行
- C#中如何实现 textBox 文本的换行
- 如何用代码在Excel中实现单元格内换行
- C# 如何让多行TextBox实现换行
- C# 如何让多行TextBox实现换行
- CSS实现强制不换行、自动换行、强制换行的css代码
- Java写到.txt文件,如何实现换行
- 如何生成验证码图片代码实现
- 如何用Javascript代码实现浏览器菜单命令
- 超级连接的提示中换行效果实现代码
- 超级连接的提示中换行效果实现代码
- 如何实现经度纬度到平面坐标的相互转换? 仅仅4句代码就可以解决!
- 如何使用网页开发自己的app,在网页中的按钮与自己的java代码绑定来实现打电话即javascript代码调用java代码,和java代码来调用javascript代码
- 如何实现ListView高效分页代码
- zend studio 10 实现代码自动换行
- android 如何使用代码实现嵌套布局
- PHP代码如何实现获取真实IP和代理IP
- Unity中如何用代码实现横版游戏路径的绘制
- css表格单元格中的长文本如何实现自动换行
- 如何实现<A>标记中的Title换行问题