【发布时间】:2015-06-25 21:31:56
【问题描述】:
我对 RichTextBox 有一些问题。我必须根据所需字符数限制 RTB 的大小(高度为 10,宽度为 10)。我尝试使用 maxLength 属性来限制行数。我的意思是我可以限制行数长度10 如果我将最大长度定义为 100,则只能有 10 行。没有回车键一切正常。但是当我按下回车键时,它不会计算当前行的其余部分。如果我在一行的第 6 个字符之后按下回车键,它会跳到下一行。并将上一行计为 6。因此框向下变长。在此先感谢...我的代码如下。
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
'Here im trying to count character number of each line
Dim count As Integer = 0
For Each s As String In Me.RichTextBox1.Lines
count = count + 1
MsgBox(count)
Dim nextLineText As String = s
If e.KeyCode = Keys.Enter Then
If count < (TakeFromCombo(ComboBox1)) Then
RichTextBox1.MaxLength = RichTextBox1.MaxLength - (TakeFromCombo(ComboBox1) - nextLineText.Length)
End If
End If
'I tried to disable enter key at last line
If count = TakeFromCombo(ComboBox1) Then
If e.KeyCode = Keys.Enter Then
e.Handled = True
End If
End If
Next
End Sub
【问题讨论】:
-
在
TextChanged事件中测试RTB 的Lines.GetUpperBound(0)怎么样? -
感谢您的回复。我可以达到行数。这不是问题。问题是我无法设置输入键的最大行号原因。
-
显然 MaxLength 属性完全没用。所以不要使用它。您必须使用 KeyPress 事件进行监视。或者只是假设用户不是 idjut 并使用 Validating 事件验证数据输入。这还可以帮助您处理诸如用户从剪贴板粘贴文本等极端情况。
-
是的,它完全没用。但我是银行的实习生,所以我必须像白痴一样写。
标签: vb.net richtextbox