У меня есть некоторые проблемы с RichTextBox. Мне нужно ограничить размеры RTB относительно необходимого номера символа (10 для высоты 10 для ширины). Я пытался ограничить количество строк с использованием свойства maxLength .I означает, что я могу ограничить длину строки Eg 10, если я определяю максимальную длину как 100, может быть только 10 строк. Все нормально, без ввода ключа. Но когда я нажимаю кнопку ввода, он не учитывает остальную текущую строку. Если я нажимаю кнопку ввода после 6-го символа строки, она переходит к следующей строке. И подсчитайте предыдущую строку как поле 6.So дольше. Спасибо заранее ... Мой код ниже.VB Как ограничить номер строки RichTextBox
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
Как насчет тестирования 'Lines.GetUpperBound (0) RTB' в событии 'TextChanged'? –
Спасибо за ответ. Я могу достичь количества строк. Это не проблема. Проблема в том, что я не могу установить максимальный номер строки вызывает клавишу ввода. –
Очевидно, что свойство MaxLength совершенно бесполезно, поэтому не используйте его. Вам нужно будет отслеживать событие KeyPress. Или просто предположите, что пользователь не является idjut и проверяет ввод данных с событием Validating, которое также поможет вам разобраться с угловыми шкафами, такими как пользователь, вставляющий текст из буфера обмена. –