Скроллбар у PictureBox. ЛЕГЕНДА или РЕАЛЬНОСТЬ???
В чем трагедия:
Не нашел я скролла у ПикчьюреБокса.. Не нашел..
Засовывание pictureBox в pictureBox и приклеивание по бокам H/VScrollBar'ов - как то коряво..
Искал по форуму, но либо у меня проблема с богатством синонимарного лексикона, либо здесь НЕТ такой темы..
Существует ли простое и гениальное решение?
Спасибо
VB не знаю, но в .NET стандартной практикой является помещение PictureBox внутри Panel. Размер PictureBox'а устанавливаем равным размеру рисунка, скроллы при этом появятся сами, когда нужно (свойство AutoScroll поставить true). Дело в том, что PictureBox не является ScrollableControl (т. е. нет у него скроллов). Думаю, в VB нужно действовать аналогично.
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
Цитата: UserNet2008
Option Explicit
Private Sub Form_Load()
hsbScroll.Max = picOne.ScaleWidth - picTwo.ScaleWidth
hsbScroll.LargeChange = hsbScroll.Max \ 10
...
...
Private Sub Form_Load()
hsbScroll.Max = picOne.ScaleWidth - picTwo.ScaleWidth
hsbScroll.LargeChange = hsbScroll.Max \ 10
...
...
Ну я так понимаю hsbScroll это контрол HscrollBar который мы ставим у краев??
Цитата: Глендальфин
Ну я так понимаю hsbScroll это контрол HscrollBar который мы ставим у краев??
Вы правильно поняли!!! кстати код для vb6
hsbScroll горизонтальный
vsbScroll вертикальный