Har en pictureBox och skulle vilja ha en Vscrollbar till den , men hur? Har en picturebox (2) som är större i en annan picturebox(1) ,sedan har jag Vscrollbar och Hscrollbar. Har hämtad Följande kod (nedan). Allt fungerar , den inre bilden flyttar sig med hjälp av scrollbaren , men samtidigt suddar den bilden och det vill jag inte, har någon förslag för att åtgärda det eller är jag helt fel ute ...( är bara en nybörjare ) Hej! Hejsan Jag visste inte det gick att skriva sådär i en picturebox (är ännu mer nybörjare ;) ) Hej NiklasPictureBox och Vscrollbar
//ESv: PictureBox och Vscrollbar
(Ska tilläggas att bilden jag använder text från--> Picture2.Print........ och den texten fösvinner vid scroll förflyttning vanlig bild fungerar bra)
-------------------------------- * ---------------------------------------------
Private Sub vscroll1_Change()
Picture2.Top = -VScroll1.Value
End Sub
Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub Form_Load()
Picture2.Move 0, 0
'VScroll1.Move Picture2.Width + Picture2.Left, Picture2.Top, 15, Picture2.Height
'HScroll1.Move Picture2.Left, Picture2.Top + Picture2.Height, Picture2.Width, 256
'SetScrollBars
'HScroll1.Width = Form1.Width
'VScroll1.Height = Form1.Height - 165
Picture2.Width = 16000
End Sub
Private Sub Timer1_Timer()
HScroll1.Min = 0
HScroll1.Max = (Form1.ScaleWidth - Picture1.Width) * -1
HScroll1.SmallChange = 66
HScroll1.LargeChange = Form1.ScaleWidth / 4
HScroll1.Width = Form1.Width - 100
VScroll1.Min = 0
VScroll1.Max = (Form1.ScaleHeight - Picture1.Height) * -1
VScroll1.SmallChange = 66
VScroll1.LargeChange = Form1.ScaleHeight / 4
VScroll1.Height = Form1.Height - 660
End Sub
---------------------------------*----------------------------------
//ESv: PictureBox och Vscrollbar
Jag fattade inte riktigt varför du har en timer men jag har gjort något liknande för ett tag sen så jag hoppas det kan komma till hjälp.
Här är ett förslag från en tidig backup (lagt in en massa skräp senare).
Du ska sätta picstorabilden2 i picstorabilden1 och rulllisterna ska var utanför pictureboxarna.
<code>
Private Sub hscStorabilden_Change()
picStoraBilden2.Left = -hscStorabilden.Value
End Sub
Private Sub vscStoraBilden_Change()
picStoraBilden2.Top = -vscStoraBilden.Value
End Sub
Private Sub StoraBilden()
picStoraBilden1.ScaleMode = vbPixels
picStoraBilden2.ScaleMode = vbPixels
' Autosize is set to True so that the boundaries of
' Picture2 are expanded to the size of the actual
' bitmap.
picStoraBilden2.AutoSize = True
' Set the BorderStyle of each picture box to None.
picStoraBilden1.BorderStyle = 0
picStoraBilden2.BorderStyle = 0
' Initialize location of both pictures.
picStoraBilden1.Move 45, 2, 435, 580
picStoraBilden2.Move 0, 0
' Position the horizontal scroll bar.
hscStorabilden.Top = picStoraBilden1.Top + picStoraBilden1.Height
hscStorabilden.Left = picStoraBilden1.Left
hscStorabilden.Width = picStoraBilden1.Width
' Position the vertical scroll bar.
vscStoraBilden.Top = picStoraBilden1.Top
vscStoraBilden.Left = picStoraBilden1.Left + picStoraBilden1.Width
vscStoraBilden.Height = picStoraBilden1.Height
' Set the Max property for the scroll bars.
hscStorabilden.Max = picStoraBilden2.Width - picStoraBilden1.Width
vscStoraBilden.Max = picStoraBilden2.Height - picStoraBilden1.Height
' Determine if the child picture will fill up the
' screen.
' If so, there is no need to use scroll bars.
vscStoraBilden.Visible = (picStoraBilden1.Height < picStoraBilden2.Height)
hscStorabilden.Visible = (picStoraBilden1.Width < picStoraBilden2.Width)
End Sub
Private Sub Form_Load()
' Set ScaleMode to pixels.
frmBastadStart.ScaleMode = vbPixels
'Load the pictures
picStoraBilden2.Picture = LoadPicture("e:\Bastad\Kartor\Bastad10Totalt.jpg")
StoraBilden
End Sub
</code>Sv: PictureBox och Vscrollbar
Det räcker visst med följande kod för scrollen:( ohh ..jag är som sagt nybörjare.....)
Private Sub Hscroll1_Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub Vscroll1_Change()
Picture2.Top = -VScroll1.Value
End Sub
Mitt problemet kvarstår nämligen:
Att bilden jag använder är text från koden --> Picture2.Print........ och den texten suddas vid scroll förflyttning men med vanlig bild fungerar det bra.
//ESv: PictureBox och Vscrollbar
Men testade lite och fick till något men vet inte om det var så du ville ha det? Pictureboxen verkar inte strecha ut om det kommer text och inte nog med det så försvinner texten helt om inte pictureboxen är stor nog så man måste förstora pictureboxen först sen skriva text.
Private Sub Form_Load()
Dim i As Long
Dim AntalRader As Long
AntalRader = 50
'man måste förstora pictureboxen före man sätter in text
Picture2.Move 0, 0, 6375, ((AntalRader - 1) * 200)
VScroll1.Max = Picture2.Height - Picture1.Height
For i = 1 To AntalRader
Picture2.Print "Detta är rad nummer " & i
Next i
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End SubSv: PictureBox och Vscrollbar
picture2.AutoRedraw= true
Fungerar alldeles utmärkt.
Tackar både Niklas och Herman
//E