Другие языки программирования и технологии
Вопрос о Visual Basic.
Насчёт поля TextBox. Есть у него такое свойство, как MaxLength - максимальное количество символов, которые можно вводить.Если стоит ноль, то ведь это означает, что количество символов неограничено.Но когда я его программно заполняю (вывожу содержимое текстового файла), то печатается он почему-то не весь, хотя всё должно быть правильно.Не подскажете, можно ли исправить эту проблему?
Дело в том, что элемент TextBox не может показывать текст объемом больше 64 kb (а иногда это значение может сократиться до 30 kb). Но эту проблему легко решить, если подгружать необходимые куски текста в TextBox по мере надобности. Данный код загружает файл любого размера в динамический массив и в зависимости от значения Value Scrool Bar'а показывает в TextBox'e, только определенные куски текста. Для того, что бы все это работало, вам нужно поместить на форму TextBox, назвать его txtMain, установить его свойство Multiline как True, а свойство ScroolBars, как 1-Horizontal. А также рядом с TextBox'ом нарисовать вертикальный ScroolBar с именем vsbText
--------------------------------------------------------------------------------
Private Text()
Private Const LineNum = 15
Private Sub Form_Load()
Dim i
Open "D:\win32api.txt" For Input As #1 Len = 1024
Do Until EOF(1)
i = i + 1
ReDim Preserve Text(i + LineNum)
Line Input #1, Text(i)
Loop
Close #1
With vsbText
.Min = 1
.Max = i
.SmallChange = 1
.LargeChange = i \ 10
End With
End Sub
Private Sub vsbText_Change()
Dim i As Integer
Dim Temp
For i = vsbText.Value To vsbText.Value + LineNum
Temp = Temp + Text(i) + vbCrLf
Next i
txtMain.Text = Temp
End Sub
http://yandex.ru/yandsearch?text=vb+TextBox+64+kb+,jkmit
--------------------------------------------------------------------------------
Private Text()
Private Const LineNum = 15
Private Sub Form_Load()
Dim i
Open "D:\win32api.txt" For Input As #1 Len = 1024
Do Until EOF(1)
i = i + 1
ReDim Preserve Text(i + LineNum)
Line Input #1, Text(i)
Loop
Close #1
With vsbText
.Min = 1
.Max = i
.SmallChange = 1
.LargeChange = i \ 10
End With
End Sub
Private Sub vsbText_Change()
Dim i As Integer
Dim Temp
For i = vsbText.Value To vsbText.Value + LineNum
Temp = Temp + Text(i) + vbCrLf
Next i
txtMain.Text = Temp
End Sub
http://yandex.ru/yandsearch?text=vb+TextBox+64+kb+,jkmit
не получится.
Если этот элемент однострочный, то скорее всего он впринципе не способен вывести строку длинее 255 символов.
посмотрите внимательно ещё раз ваш код, врятли такой баг был не замечен
Посмотри, может в коде есть изменение text1.maxlength, попробуй создать другой проект, что выйдет..
в textbox невозможно вывести более 255 символов, как и в любую другую строку.
надо знать ваш код, который вы добавляете программно. MaxLength - это и правда безлимитно по количеству символов, но всё же больше 65 кб в него вы не добавить. К тому же у ТекстБокса у вас какой параметр MultiLine ?
Используй RichTextBox тогда проблем с выводом файла в текстовое поле не будет!
Разницы у них нету, разве что у RichTextBox нету ограничения в 64Кб и функциональность лучше, менее глюченый.
Разницы у них нету, разве что у RichTextBox нету ограничения в 64Кб и функциональность лучше, менее глюченый.
Похожие вопросы
- Вопрос по Visual Basic! Очень нужна ваша помощь! Внутри (+)
- Вопрос про Visual Basic
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.
- Подойдет ли самоучитель по Visual Basic .NET для освоения языка Basic, человеку не понимающему в программировании?
- Вопросы по установке Visual Basic
- Visual Basic или C#
- Нужна помощь по Visual Basic
- visual basic 6
- visual basic 2008
- Программа на Microsoft Visual Basic 2008