Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #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-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 15.09.04 09:02
Да, в Design Mode скролл работает - прокручивает содержимое панели.

Ответить

Номер ответа: 7
Автор ответа:
 Oleg K



Вопросов: 15
Ответов: 72
 Профиль | | #7 Добавлено: 16.09.04 01:02
Спасибо. Понял.
Значит практически возможно.
Буду искать решение.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам