Страница: 1 |
Страница: 1 |
Вопрос: Как заставить ScrollBar работать в DesignMode ???
Добавлено: 13.09.04 00:37
Автор вопроса: Oleg K
VB.NET 2003
Есть контрол, наследует Panel в него в DesignMode добавляются другие контролы и когда эти контролы в видимую область не вмещаются засвечиваю ScrollBar, вот только он (ScrollBar) появляется, но в DesignMode не работает.
Как мне его заставить работать в DesignMode ?
ScrollBar мне нужен только в DesignMode. По-этому делаю так:
Protected Overrides Sub OnPaint( _
ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
Dim rect As Rectangle = ClientRectangle
If designmode Then
ControlPaint.DrawBorder(e.Graphics, rect, Color.Gray, ButtonBorderStyle.Dashed)
Me.AutoScroll = True
Else
Me.AutoScroll = False
End If
End Sub
Но на этом все мои познания работы со ScrollBar закончились. Подскажите, как мне это побороть...
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 13.09.04 09:47
Я бы этот код расположил в конструкторе класса:
If designmode Then
Me.AutoScroll = True
Else
Me.AutoScroll = False
End If
Номер ответа: 2
Автор ответа:
Oleg K
Вопросов: 15
Ответов: 72
Профиль | | #2
Добавлено: 14.09.04 00:07
И чем мне это должно помочь?
Павел. Или ты меня не понял, или ???
Если размещаю в конструкторе класса, то скролл не отображается. Через OnPaint отображается как надо, только как обычный контрол в designmode, а мне надо чтобы он Скролл живым был в designmode, чтобы он мне содержимое в designmode крутил.
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 14.09.04 07:52
Судя по смыслу кода
If designmode Then
Me.AutoScroll = True
Else
Me.AutoScroll = False
End If
скролл будет появляться только в design-mode.
Сегодня попробую это на примере.
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 14.09.04 15:48
Да, действительно, при выполнении кода в конструкторе, он не работает.
А вот тако работает нормально (проверял в VB .Net 2005 Express Beta):
Public Class MyPanel
Inherits Panel
Private Sub MyPanel_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles Me.ControlAdded
Me.AutoScroll = DesignMode
End Sub
End Class
Номер ответа: 5
Автор ответа:
Oleg K
Вопросов: 15
Ответов: 72
Профиль | | #5
Добавлено: 15.09.04 02:48
Павел, он (Scroll) нормально работает - в смысле прокручивает в DesignMode?
Или просто рисуется в DesignMode?
Если только рисуется, то он и у меня в OnPaint рисовался.
Попробовал и приведенный тобой код - эффект тот же, т.е. Scroll отображается но не крутит в DesignMode. Может быть в VB .Net 2005 Express Beta это работает, но в 2003 возможно надо это решать как-то по-другому...
Мне надо не просто его отобразить (положить на форму), а заставить работать так, как он работает в RunTime, только чтобы работал он в DesignMode.
Павел, ты пробовал в VB .Net 2005 Express Beta - он (Scroll) работал в DesignMode так же, как он работает обычно в RunTime ???
Номер ответа: 6
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #6
Добавлено: 15.09.04 09:02
Да, в Design Mode скролл работает - прокручивает содержимое панели.
Номер ответа: 7
Автор ответа:
Oleg K
Вопросов: 15
Ответов: 72
Профиль | | #7
Добавлено: 16.09.04 01:02
Спасибо. Понял.
Значит практически возможно.
Буду искать решение.