
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.123] |
![]() |
|
Сообщ.
#1
,
|
|
|
Народ!!
Как сделать так ,что TextBox'а связан с ScrollBar'ом. Т.Е. скролом просматривать написанное на TextBox'е ?? |
Сообщ.
#2
,
|
|
|
А чем тебя стандартный не устраевает? Ну в принципе незнаю как стандартный TextBox, а RichTextBox точно поддерживает.
Но настет TextBox'а тоже есть идея(основана на том TextBox при выделении текста перемещает экран на это выделении, помему ???), то, ща нет времени исходник писать, но идея такова: 1. если вдруг выделен текст запоминвешь(в переменные) точку старта и длинну выделения. 2. Определяешь общюю длинну текста, и максимум скролла, соотносиш их, и выделяеш в текст боксе тот кусочек текста, который соответствует положени скролла. Экран поидее должен переместиться 3. и тут происходит страшное (сразу не подумал !!!), если ты выделишь ранее выделиный текст (см п. 1), то переедишь обратно туда, откуда начал. Такчто выделение придется потерять. Вобщем эта идея пока не проверена, и имеет недостаток (п. 3), попробуйте исходник сделать и поэксперементировать. |
Сообщ.
#3
,
|
|
|
Реально... нафига тебе лишние контролы? На стандартном текстбоксе устанавливаешь Multiline = true, и Scrollbars = vertical(или horizontal).
Я ручаюсь - эта связка textbox'a c scrollbar'oм безупречна... |
Сообщ.
#4
,
|
|
|
Это точно, но если всё ещё хочешь связать текстбокс с каким нибудь супер-навороченым скролл баром вот исходник (правда с вышеупомянутым глюком).
![]() ![]() <br>' на форме должно быть два эллемента:<br>' Text1 это TextBox<br>' VScroll1 это VScrollBar<br>' не забудьте заменить Text1.MultiLine на True,<br>' текст в Text1 можно не вводить<br>Option Explicit<br>Private Sub Form_Load()<br> Dim intVal As Integer<br> For intVal = 0 To 1000<br> Text1.Text = Text1.Text + Format(a, "00000") + Chr$(13) + Chr$(10)<br> Next<br>End Sub<br><br>Private Sub VScroll1_Change()<br> Text1.SelStart = (VScroll1.Value / VScroll1.Max) * Len(Text1.Text)<br>End Sub<br><br>Private Sub VScroll1_Scroll()<br> Text1.SelStart = (VScroll1.Value / VScroll1.Max) * Len(Text1.Text)<br>End Sub<br> |