到达表单C#(WinForm)结尾时在下一行继续的文本

时间:2013-06-22 10:31:21

标签: c# winforms text cmd

所以我想创建一个WinForm应用程序,它将开始从左上角一直打到右下角的文本,就像一个控制台应用程序,当它到达一行的结尾时,它继续在一个新的行中。 / p>

例如:

>line 1:     I need y
>
>line 2:     our help

如果你理解我的意思,那么文字应该被砍掉。

2 个答案:

答案 0 :(得分:0)

您应该使用RichTextBox来实现此目的。它表示一个富文本控件,支持格式化文本,超链接,内嵌图像和其他丰富内容。

RichTextBox.TextWrapping RichTextBox的属性可以帮助您。

  • 如果文本行超出RichTextBox的可用宽度,则获取或设置文本换行的方式。
  • 设置RichTextBox属性时,应考虑TextWrapping的宽度。
  • 不会显示任何超出RichTextBox范围的文本。如果TextWrapping属性设置为NoWrap,则可以使用光标将超出水平边界的文本滚动到视图中。垂直超出的文本可以使用键盘或滚动条滚动到视图中。
  • 如果TextWrapping属性设置为Wrap,HorizontalScrollBarVisibility属性将自动设置为已禁用,并且忽略对HorizontalScrollBarVisibility的任何属性更改。

答案 1 :(得分:0)

您可以使用MultiLine Textbox ..您必须注意

[1]如果你使用修复宽度字体会更容易..这个想法(不是真正的代码)

charlimit = me.width / textwidth("A") ----> use graph textrender function here

[2]您可以控制 textbox_textchanged 事件,以确保单词不会被'自动装配'到下一行..所以当文本位置位于最正确的位置时您可以通过使用 vbCrLf ..

添加文本来剪切它
if LastLine.Length = charlimit then

     alltext += vbCrLf

     lastLine = ""

endif

但是当你在中间行进行时这很难,因为你必须重新计算它之后的单词(在它下面)..