仅使 richtextbox 单行

Make richtextbox single line only

是否可以让一个richtextbox只能包含一行?我希望它具有 wraptext 功能,但我不能在它将生成的文件中包含多行。

您可以将其 AcceptsReturn 属性设置为 false,因为它不会让文本 return.

只允许一行

如果出于某种原因您的属性 window 没有 AcceptsReturn 属性,您可以在事件 KeyDown 下添加 if e.KeyCode = Keys.Enter Then e.SuppressKeyPress = True(如 Jimi).

简单的先想想,我们怎么到下一行呢?通过按 ReturnEnter。因此,在 RichTextboxKeyPress 事件中,您可以简单地使用:

 If e.KeyChar = Keys.Return Then
    e.Handled = True
 End if

现在这有一个主要缺点,那就是:如果用户将多行文本复制粘贴到 richtextbox 怎么办?

要解决此问题,您只需在 TextChanged 事件中应用以下代码即可:

 Private Sub Rtb_TextChanged()
  Dim lcount as Integer = rtb.Lines.Count
  Dim i As Integer
  If lcount > 1 Then 
    For i = 2 to lcount - 1
     Dim index As Integer = rtb.GetFirstCharIndexFromLine(i)
     Dim count As Integer = rtb.GetFirstCharIndexFromLine(i + 1) - start_index
     rtb.Text = rtb.Text.Remove(index, count)
    Next
   End if
  End Sub

希望这对您有所帮助:)