如何使用预先配置的宽度从多行文本框(Web控件)中包装输出文本?

时间:2014-11-03 13:01:48

标签: c# winforms textbox textwrapping

我在TextBoxSystem.Web.UI.WebControls)中有文字换行问题。

我有一个文本框,其列设置为65,文本模式属性设置为MultiLine,并且将属性设置为true

当我收集用户使用txtMessage.Text作为字符串输入的消息时,换行符“\r\n”仅放在UI中发生的位置,而不是在65之后字符。

这可以解决吗,whiteout写我自己的包装代码?

实施例。代码:

在某些init方法中:

txtMessage.Columns  = 65;
txtMessage.TextMode = TextMode.MultiLine;
txtMessage.Wrap     = true;

...用户输入一些文字并提交 ....

在提取方法中:

string text = txtMessage.Text;
// ...
// Do something with the text ...

键入的文字是:

  

0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"

在提取过程中,字符串变为

  

“01234567890123456789012345678901234567890123456789012345678901234567890123456789 \ r \ n01234567890123456789”

,因为文本窗口只有在一行中符合100个字符。

但是该列设置为65 ,因此结果应为

  

“01234567890123456789012345678901234567890123456789012345678901234 \ r \ n56789012345678901234567890123456789”

1 个答案:

答案 0 :(得分:1)

Winforms TextBox控件并不支持您本机所需的功能。但是,有两种解决方案适合你。

  1. 删除所有换行符和换行符。然后在将值保存到数据库之前,每隔65(或任何你想要的长度)字符后添加换行符和换行符。

  2. 继承TextBox类并编写您自己的User Control以覆盖Text属性以表示上面第一点中的功能。通过这种方式,您可以重复使用此控件(但是,不确定这是一个问题)

  3. 希望这会有所帮助。