Zdravim všechny, potřeboval bych poradit s komponentou ScrollableControl, u ktere mi nejak prapodivne funguje scrollovani. - Ve ScrollableControlu mam pole labelu velikosti 100x100 px, a ty jsou umistene jeden vedle druheho v nekolika radach. - Jejich pocet je vetsi nez se vejde na form, takze mam zde zobrazeny oba scroll bary. - Pozadavek mam aby se oba scrollbary posunovali po nasobcich 100 aby se vzdy ctverec (label) zobrazil cely - Problem je v tom ze pri posouvani jednoho scrollbaru se mi stejna hodnota nastavuje i druhemu scrollbaru coz je spatne. Nikde v kodu nemam zadnou zavislost jednoho scrollbaru na druhy. Nevim si s tim uz rady, budu rad za kazdou radu ktera povede k uspesnemu vyreseni. Dekuji Kod je nasledujici:
Dim scr As New System.Windows.Forms.ScrollableControl
scr.Location = New System.Drawing.Point(15, 15)
scr.Name = "ctl1"
scr.Size = New System.Drawing.Size(10000, 10000)
scr.AutoScroll = False
Controls.Add(scr)
scr.BringToFront()
scr.AutoScroll = True
AddHandler scr.Scroll, AddressOf skrol
Kod k teto udalosti je pak nasledujici:
Private Sub skrol(sender As System.Object, e As System.Windows.Forms.ScrollEventArgs) Handles ctl1.Scroll
Dim panbox As ScrollableControl = DirectCast(sender, ScrollableControl)
If e.ScrollOrientation = 0 Then
scrol1 = e.NewValue
scrol1 = scrol1 - (scrol1 Mod 100)
panbox.VerticalScroll.Value = scrol1
ElseIf e.ScrollOrientation = 1 Then
panbox.VerticalScroll.Enabled = False
scrol2 = e.NewValue
scrol2 = scrol2 - (scrol2 Mod 100)
panbox.HorizontalScroll.Value = scrol2
End If
end sub
|