2010-06-14 5 views
0

Этот вопрос касается WinForms RichTextbox.Force Richtextbox scrollbars для обновления

У меня есть RichTextbox с свойством ScrollBars, установленным в Vertical.

Я изменяю его содержимое RTF из кода, и иногда вертикальная полоса прокрутки отключается - когда она должна быть включена. Этого никогда не должно быть - полоса прокрутки должна быть включена или вообще не показана. (У меня была аналогичная проблема в моем приложении VB6, когда полоса прокрутки иногда вообще не отображалась, когда она должна была).

Есть ли способ заставить полосы прокрутки RichTextbox обновить через PInvoke или любым другим способом устранить эту проблему?

Спасибо.

ответ

0

Я наконец понял это! В случае, если кто нуждается в этом:

1) Создать новый элемент управления, который наследуется от элемента управления RichTextBox

2) Добавьте этот код:

Public Sub FixScrollbars() 
    RecreateHandle() 
End Sub 

3) Вызвать его всякий раз, когда вы измените свойство .rtf ,

-1

ли вы пробовали

this.richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedVertical; 
+0

Да, это работает, конечно. Но я хочу, чтобы полоса прокрутки скрывалась, когда она не нужна. – Jiri

+0

Не работает, да, если сила полосы прокрутки будет видимой, но не делает ее обновленной, поэтому ее там, но имеет неправильное смещение/размер прокрутки и т. Д. – trampster