[vb.net]   zodpovězená otázka

VB.NET, WinForms

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

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A nemáte v podmínce IF prohozené hodnoty ScrollOrientation = 0 a ScrollOrientation = 1?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ahoj, tak je to skutecne tim :-d tak tohle jsem skutecne nezkousel, diky moc.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Není to o zkoušení, ScrollOrientation vodorovně (x) vrací 0, svisle (y) vrací 1 - tedy v logickém pořadí x, y odpovídá 0, 1

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback