[VB.Net] Hoe scrollbar koppelen aan form?

Pagina: 1
Acties:
  • 764 views sinds 30-01-2008
  • Reageer

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 17:38
Goeie middag hier, ik zit met het volgende probleem, en kan het maar deels zelf oplossen.
Ik heb een panel, en ik wil op dat panel een scrollbar krijgen. Ik gebruik dat panel nl. als container voor een usercontrol, en wil dus wel kunnen scrollen als de usercontrol groter is dan de panel.

Nu kan ik dat via AutoScroll doen, echter een probleem daarbij is dat ik dan de breedte van de scrollbar niet kan wijzigen, en ik wil de scrollbar ongeveer 2x zo breed hebben dan de standaard breedte. (Het betreft dus een Vertical Scrollbar).

Ik weet dat in VB.Net een VScrollBar component zit. Dit kan ik ook prima op het form slepen in de designer, echter krijg ik hem dan niet gekoppeld aan het form. Ik heb al op internet gezocht, en ben tegen gekomen dat je "simpelweg de property moet instellen"... wélke property geeft aan dat die scrollbar bij dat panel hoort? Ik kan hem nl. niet vinden.

Verder zoekend op internet en in VB.Net ben ik er ook achter gekomen dat je de volgende property's hebt bij een panel... HorizontalScroll en VerticalScroll. Als ik de volgende code gebruik:
Panel.VerticalScroll.Enabled = True
Panel.VerticalScroll.Visible = True
Panel.HorizontalScroll.Enabled = False
Panel.HorizontalScroll.Visible = False
Dan toont de scrollbar zich wel gewoon netjes aan de rechterkant van het scherm, maar dan "werkt" hij niet als ik ermee beweeg. Bovendien kan ik zo de breedte niet aanpassen.

Weet iemand hoe ik het zo kan krijgen dat ik een scrollbar op een panel kan krijgen, zodat hij ook functioneert én dat ik de breedte kan aanpassen?

Overigens werk ik met Visual Studio 2005

Wanna play?


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:11
Programmeren is meer dan componentjes aan elkaar lijmen door het instellen van properties.
Je zal in dit geval dus ook een beetje zelf moeten programmeren... Code schrijven dus...

De events Scroll en ValueChanged van de scrollbar zullen van pas komen, en ook de Minimum en Maximum property.

In de MSDN is er trouwens een voorbeeldje uitgewerkt, als je eens de ScrollBar class overview gaat gekijken.

https://fgheysels.github.io/


  • F-Tim
  • Registratie: November 2003
  • Laatst online: 17:38
Ja, maar het probleem bij het voorbeeld van MSDN is, is dat het een Picturebox betreft, en een Image dat de complete grootte heeft ;) Ik maak echter gebruik van een Panel. En een panel heeft geen image waar ik een region van kan laten zien ;) Dat is het probleem waar ik bij MSDN tegen vastloop nu. (Overigens was dat Example wel goed verstop, als ik gewoon de scrollbar class opende, dan kreeg ik alleen alle properties en methods te zien)

Maargoed, ik ga nog eens verder stoeien dan vandaag.... kijken hoever het lukt. Als iemand tussentijds nog tips weet, dan kan ik die ook gebruiken.

Wanna play?


  • CyBoB
  • Registratie: Januari 2001
  • Laatst online: 21-11 16:29

CyBoB

.::BURB::.

Je kan toch gewoon de X en Y coordinaten van je controls zetten op basis van de van de scroll box positie?!

Als je scroll box bovenaan (positie 0) staat dan zijn je coordinaten van je control ook gewoon 0, 0. Als de positie op bijvoorbeeld 5 staat dan wordt de positie van je control 0, -5 (in het geval van een verticale verplaatsing). enz...

Daarnaast kan je volgensmij ook je assenstelsel veranderen zodat je coordinaten van je controls hetzelfde blijven, maar worden de controls wel degelijk op een andere plek getoond. Hiervoor zul je alleen ff de msdn door moeten spitten want ik weet zo niet uit me hoofd hoe dat gaat.

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 17:38
CyBoB schreef op donderdag 04 mei 2006 @ 10:47:
Je kan toch gewoon de X en Y coordinaten van je controls zetten op basis van de van de scroll box positie?!

Als je scroll box bovenaan (positie 0) staat dan zijn je coordinaten van je control ook gewoon 0, 0. Als de positie op bijvoorbeeld 5 staat dan wordt de positie van je control 0, -5 (in het geval van een verticale verplaatsing). enz...

Daarnaast kan je volgensmij ook je assenstelsel veranderen zodat je coordinaten van je controls hetzelfde blijven, maar worden de controls wel degelijk op een andere plek getoond. Hiervoor zul je alleen ff de msdn door moeten spitten want ik weet zo niet uit me hoofd hoe dat gaat.
Aan het veranderen van de coordinaten van de controls zat ik zelf ook al te denken. Dit doe ik echter pas als ik echt geen oplossing vind, want ik vind dat persoonlijk niet zo'n nette manier omhet op te lossen.

Die assenstelselverandering, die lijkt me wel interessant.... ik zal ff in MSDN spitten, kijken wat ik daarover kan vinden :) Thanx! Het is in ieder geval níet de Location ;)

Wanna play?