所以我想制作一个 WinForm 应用程序,它将像控制台应用程序一样从左上角一直到右下角开始输入文本,当它到达一行的末尾时,它会在新的一行中继续。
例如:
>line 1: I need y
>
>line 2: our help
如果你明白我的意思,文本应该被砍掉。
您应该RichTextBox
用于此目的。它表示支持格式化文本、超链接、内嵌图像和其他丰富内容的富文本控件。
RichTextBox.TextWrapping
的属性RichTextBox
可以帮助你。
RichTextBox
.RichTextBox
设置TextWrapping
属性时应考虑宽度。TextWrapping
属性设置为NoWrap
,则可以使用光标将超出水平边界的文本滚动到视图中。可以使用键盘或滚动条将超出垂直方向的文本滚动到视图中。TextWrapping
属性设置为 Wrap,该HorizontalScrollBarVisibility
属性将自动设置为 Disabled,并且对 的任何属性更改都将HorizontalScrollBarVisibility
被忽略。您可以使用 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
但是当你在中间行时这会很困难,因为你必须重新计算它后面的单词(在它下面)..