Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Скроллбар у PictureBox. ЛЕГЕНДА или РЕАЛЬНОСТЬ???

66K
14 февраля 2011 года
Глендальфин
6 / / 14.02.2011
В Ограниченный размерами pictureBox, (без автосайза) помещаются всякие-большие-маленькие картинки. И в этот момент хочется увидеть скролл.

В чем трагедия:
Не нашел я скролла у ПикчьюреБокса.. Не нашел..

Засовывание pictureBox в pictureBox и приклеивание по бокам H/VScrollBar'ов - как то коряво..

Искал по форуму, но либо у меня проблема с богатством синонимарного лексикона, либо здесь НЕТ такой темы..
Существует ли простое и гениальное решение?

Спасибо
297
14 февраля 2011 года
koodeer
1.2K / / 02.05.2009
VB не знаю, но в .NET стандартной практикой является помещение PictureBox внутри Panel. Размер PictureBox'а устанавливаем равным размеру рисунка, скроллы при этом появятся сами, когда нужно (свойство AutoScroll поставить true). Дело в том, что PictureBox не является ScrollableControl (т. е. нет у него скроллов). Думаю, в VB нужно действовать аналогично.
327
14 февраля 2011 года
UserNet2008
748 / / 03.04.2010
Option Explicit

Private Sub Form_Load()
hsbScroll.Max = picOne.ScaleWidth - picTwo.ScaleWidth
hsbScroll.LargeChange = hsbScroll.Max \ 10
hsbScroll.SmallChange = hsbScroll.Max \ 25
vsbScroll.Max = picOne.ScaleHeight - picTwo.ScaleHeight
vsbScroll.LargeChange = vsbScroll.Max \ 10
vsbScroll.SmallChange = vsbScroll.Max \ 25
End Sub

Private Sub hsbScroll_Change()
UpdatePicTwo
End Sub

Private Sub hsbScroll_Scroll()
hsbScroll_Change
End Sub

Private Sub vsbScroll_Change()
UpdatePicTwo
End Sub

Private Sub vsbScroll_Scroll()
vsbScroll_Change
End Sub

Private Sub UpdatePicTwo()
picTwo.PaintPicture picOne.Picture, 0, 0, _
picTwo.ScaleWidth, picTwo.ScaleHeight, _
hsbScroll.Value, vsbScroll.Value, _
picTwo.ScaleWidth, picTwo.ScaleHeight, _
vbSrcCopy
End Sub

Один недостаток нужно два PictureBox'а один с оригиналом картинки правдо его можно сделать не видимым picOne.Visible = False
66K
15 февраля 2011 года
Глендальфин
6 / / 14.02.2011
Цитата: UserNet2008
Option Explicit

Private Sub Form_Load()
hsbScroll.Max = picOne.ScaleWidth - picTwo.ScaleWidth
hsbScroll.LargeChange = hsbScroll.Max \ 10
...
...



Ну я так понимаю hsbScroll это контрол HscrollBar который мы ставим у краев??

327
15 февраля 2011 года
UserNet2008
748 / / 03.04.2010
Ну я так понимаю hsbScroll это контрол HscrollBar который мы ставим у краев??



Вы правильно поняли!!! кстати код для vb6

hsbScroll горизонтальный
vsbScroll вертикальный

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог