Ich möchte eine Groupbox mit Scrollbar

Reverent

Erfahrenes Mitglied
Hallo Ihr da draussen,
ich hoffe Ihr könnt mir helfen und dafür schon mal ein Danke.
Also ,ich habe eine groupBox auf meine Form gezogen und in dieser groupBox habe ich eine
vScrollBar gedropt. Die Eigenschaft "Dock" der vScrollBar habe ich auf "Right" gestellt. Und zum testen habe ich noch ein Label in die groupBox geschubst.
Wie gekomme ich es jetzt hin, das ich das Label hoch und runter scrollen kann?
Ach noch was, die Eigenschaften "Minimum=0" und "Maximium=groupBox.Height" der vScrollBar.
Noch eine kleine Frage am Rande, was ist der Unterschied zwieschen "groupBox.Height" und "groupBox.ClientSize.Height" ?
 
Hi!
Dafür gibt es schon ein Objekt.
Verwende das ScrollableControl-Objekt. Füge es in deine Groupbox ein und setz die Dock-Eigenschaft auf FILL, fertig.

Wenn Du aber was spezielles mit der V-ScrollBar wie, z.B. sortieren, machen willst:
Code:
private void vsbLabelScroll_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e) {

	// Bei jeder Wertveränderung wird geprüft ob ein Label angeklickt wurde.
	if ( Type == ScrollEventType.ThumbTrack
	|| e.Type == ScrollEventType.SmallIncrement
	|| e.Type == ScrollEventType.SmallDecrement ){

		if ( ClickedLabel.Selected != null ){
			// Wenn keine Veränderung eingetreten ist, wird beendet.
			if ( ClickedLabel.LabelIndex == (byte) e.NewValue )
				return;
			// Bewegt den angeklickten Abschnitt, entsprechend dem Wert der LabelScrollBar nach oben.
			if ( ClickedLabel.LabelIndex > (byte) e.NewValue )
				for ( byte b = 0; b < ( ClickedLabel.LabelIndex - e.NewValue ); b++)
					MoveUp( this.ClickedLabel.Selected ); // Eigene Implementation
			// ...und nach unten.
			else if ( ClickedLabel.LabelIndex < (byte) e.NewValue )
				for ( byte b = 0; b < ( e.NewValue - ClickedLabel.LabelIndex); b++)
					MoveDown( this.ClickedLabel.Selected ); // Eigene Implementation						
			ClickedLabel.LabelIndex = (byte) e.NewValue;
			RefreshPanel(); // Eigene Implementation
		}
		else
			// Meldung ausgeben das kein Label angeklickt wurde
}
Daran kannst Du dich orientieren.

MfG cosmo
 
Zuletzt bearbeitet:
Zurück