在文本框控件中包装长文本

时间:2019-07-11 18:54:16

标签: .net winforms

这个问题与WordWrap无关。

我有一个 Base64 字符串,用户将(可能)粘贴或(不太可能)输入Windows窗体上的TextBox控件。

我想提供多行TextBox,以便所有内容可见,但是我不希望它是单行,长行或使用滚动条。

实际上,我希望它的行为像Label控件一样,该控件与WordWrap = False一起根据每行的内容来包装所有显示的文本。

很不幸-我已经做了很多搜索-Windows窗体TextBox控件似乎没有这种行为;您可以WordWrap或不进行任何操作。加上包含“ /”和“ +”字符的 Base64 字符串,这将产生非常难看的,不确定的外观。

那么,我是否还需要在TextChanged事件处理程序中人为地插入换行符,然后再将其删除?还是使用TextBox属性自定义/扩展TextWrap控件?

这真令人沮丧。至少对我而言,这似乎是显而易见的。

1 个答案:

答案 0 :(得分:0)

窗体文本框具有称为多行的属性。如果将Multiline设置为True,则应该会得到理想的结果。

编辑:我知道您说的不是说WordWrap,但是当我将TextBox设置为Multiline = True以及WordWrap = True时,它在所有测试用例中的行为都与标签相同。

这是在Visual Studio 2017中,目标为.NET 4.7.2。我创建一个新的Forms应用程序。添加了一个文本框和一个标签。我将它们设置为相同的大小。我粘贴了

VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2dzLiAxMjM0NTY3ODkw LT0hQCMkJV4mKigpXytbXVw7

两个控件上的Text属性。我将TextBox设置为multiline = True,而WordWrap = True,这就是结果。如果这不是您想要的,请添加一张您期望的图片。

enter image description here