C# TextBox换行原理

  要让一个Windows Form的C# TextBox换行显示多行文本就得把它的Multiline属性设置为true。

你往往会想到直接添加一个含有换行符"\n"的字符串给Text属性:

    aTextBox.Text = "First Line\nSecond Line\nThird Line";

可是实际运行的时候你却发现它始终不会换行,显示的结果为"First LineSecond LineThirdLine"。

其实主要是因为C# 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了。所以上面的代码应该写成:

  TextBox.Text = "First Line" +

  Environment.NewLine + "Second Line" +

  Environment.NewLine + "Third Line";

另外你也可以用verbatim string literal(用@开始的字符串)的形式来输入换行符:

  aTextBox.Text = @"First Line

  Second Line

  Third Line";

  这样就能实现换行功能了。

C# TextBox换行原理

时间: 2024-10-07 22:42:16

C# TextBox换行原理的相关文章

cocos2d-x改底层之RichText富文本换行

关于字符编码的知识,请参考前辈的博客:字符串和编码格式 这里使用的是cocos2dx的2.2.3版本,底层的RictText换行机制不能满足中文换行,需要改动.由于在3.x的版本已经优化了,而且以后的项目也会转到3.x的版本,所以这里只是做一个记录,对底层换行机制的思想做一个分析,仅供学习用. RichText的换行原理: 以文本换行为例(图片同样的道理),先用一个不带换行的label,算出该label的总长度L,然后和程序设定的宽w比较,w<L则一行足以,否则按w在L中比例来截取原字符串,作为

C# TextBox常用方法总结

我们在使用C# TextBox进行开发操作的时候经常会碰到C# TextBox的使用,那么C# TextBox的使用有没有一些常用的技巧呢?如C# TextBox换行的处理,其实就是一些常用的操作,那么这里就向你介绍几个我们常见的需求以及解决方法. 一.关于C# TextBox全选的判断: int SelectLength=this.textBox1.SelectionLength;//获取选中的字符长度 if (SelectLength == this.textBox1.Text.Length

python中print()函数的用法和end=&quot;&quot;不换行详解

需求:打印五个字符,在一行上 代码: i = 0 while i< 5 : i += 1 print(i,end='') 结果: 1 2 3 4 5那么问题来了,为什么加一个end="" 就不换行了,就打印在一行上了呢?首先,我们要聊一聊print()这个内置函数了,它有哪些具体的参数呢?请看列表通过函数参数我们可以看到.print()函数里面是默认换行的,具体换行参数是end="\n".so,如果我们把参数end="\n"换成end=''

C#在WinForm中怎样让多行TEXTBOX的换行

要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true.  要让TextBox里面的文本换行大家往往会想到直接在要换行的地方加个转义的换行符"\n": [csharp] view plaincopyprint? this.textBoxDescription.Text = "操作说明\nESC\t最小化\nALT+F4\t退出\nShift+F6\t设置访问地址"; this.textBoxDescription.

C# 利用TextBox的Text属性实现换行加字符 &quot;\r\n&quot;

要让一个TextBox显示多行文本就得把它的Multiline属性设置为true,可是如果你是要把TextBox的Text属性设置多行文本时,换行符由两个字符组成:"\r\n". TextBox1.Text = "First \nSecond \nThird ";运行的时候不会换行. 其实主要是因为TextBox运行在Windows上.Windows能够显示的换行必须由两个字符组成:"\r\n". 如果只是"\n"在Windo

C#中textbox输出换行

很多人在C#.NET平台编程时遇到一个问题,就是在textbox中原本应该换行的文本,保存到文件中却没有换行. 例如: textbox中文本为: 12 34 56 而保存到文件中却是: 123456 没有了换行. 原因在于: textbox中的换行\n是在window上执行的,而window上执行换行的时候需要\r\n,所以就导致了无法换行,所以我们可以使用textbox.Text.Replace("\n","\r\n")来实现换行, 但是在Linux系统和其他平台

PHP_EOL换行 与 base64编码

base64编码包括64个字符:10个数字(0-9),26*2个字母(a-zA-Z),+,\ 其中还有一个第65个字符=作为后缀,没有实际作用. 来一段代码说明个问题: 1 <?php 2 3 $str = '1234567'; 4 5 $en = base64_encode($str);// MTIzNDU2Nw== 6 7 $en = 'MTIzND U 8 9 2Nw=========='; 10 11 echo base64_decode($en);// 1234567 可以看到,即使修

正则表达式基础、原理及优化

前言 正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本.简单说就是一个特殊的字符串去匹配一个字符串.定义了一些规则,用于匹配满足这些规则的字符串. 对于正则表达式应该很多人第一感觉就是很难,完全没有规律,看不懂. 我觉得可能有以下几个原因: 1.读不懂. 各种不同的字符组合一起,难以理解.确实,对于熟悉正则表达式的人来说,一个稍微长点的正则表达式想要理解起来,可能也要花费一定的功夫.可读性差是正则表达式的

c语言中get()函数的原理及返回值

转载自CSDN博客:http://blog.csdn.net/shenglanya/article/details/52213500 首先要记住的一句话就是Never use gets().这是因为gets()函数不检查目标数组是否能够容纳输入,而若想把一个字符串读到程序中,最先要做的事情就是预留存储字符串的空间.所以这很容易导致分配的空间不够大而数组越界,然而gets()函数并不检查这个方面,所以导致的结果就是程序很容易出现漏洞,著名的"蠕虫"病毒的原理就是用很长的数据覆盖原有数据导