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

问题描述 投票:0回答:1

我在TextBoxSystem.Web.UI.WebControls)中包含文本问题。

我有一个文本框,列设置为65,文本模式属性设置为MultiLine,wrap属性设置为true

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

这有可能解决,白色写我自己的包装代码?

防爆。码:

在一些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”

c# winforms textbox textwrapping
1个回答
1
投票

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

  1. 删除所有换行符和换行符。然后在将值保存到数据库之前,每65(或任何你想要的长度)字符之后添加换行符和换行符。
  2. 继承TextBox类并编写自己的User Control来覆盖Text属性以表示上面第一点中的功能。通过这种方式,您可以重用此控件(但是,不确定这是一个问题)

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.