0

所以我想制作一个 WinForm 应用程序,它将像控制台应用程序一样从左上角一直到右下角开始输入文本,当它到达一行的末尾时,它会在新的一行中继续。

例如:

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

如果你明白我的意思,文本应该被砍掉。

4

2 回答 2

0

您应该RichTextBox用于此目的。它表示支持格式化文本、超链接、内嵌图像和其他丰富内容的富文本控件。

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

  • 它获取或设置如果一行文本超出RichTextBox.
  • RichTextBox设置TextWrapping属性时应考虑宽度。
  • 任何超出 RichTextBox 边界的文本都不会显示。如果该TextWrapping属性设置为NoWrap,则可以使用光标将超出水平边界的文本滚动到视图中。可以使用键盘或滚动条将超出垂直方向的文本滚动到视图中。
  • 如果该TextWrapping属性设置为 Wrap,该HorizontalScrollBarVisibility属性将自动设置为 Disabled,并且对 的任何属性更改都将HorizontalScrollBarVisibility被忽略。
于 2013-06-22T10:34:09.600 回答
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

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

于 2013-06-22T14:20:00.637 回答