Form Scrollbalken ...
-
Wenn ich in meinem Paint-Handler des Hauptformulars (Form-Klasse) folgendes schreibe:
.._Paint( ..., e)
{
Graphics g = e.Graphics;
for (int i=0; i<100; i++)
g.DrawString("Soso " + i.ToString(), ..., 0, i*20);
}
dann erscheinen nicht alle Strings, weil das Formular eine zu geringe Höhe hat.
Jetzt ist aber auch kein Scrollbalken vorhanden, mit dem ich das ganze Fenster
anschauen kann. Sollte ich stattdessen ein Panel verwenden ? oder wie bekomme
ich eine Scroll-Funktion für das Hauptformular ?
-
Hallo,
ob Form oder Panel ist egal (beide sind von ScrollableContainer abgeleitet).
Daher setze einfach die EigenschaftAutoScroll = true; AutoScrollMinSize = new Size(X, Y); // X und Y entsprechend setzen, z.B. 1000, 2000
Und dann mußt du im Paint-Ereignis noch die Eigenschaft 'AutoScrollPosition' beachten, d.h.
Point p = AutoScrollPosition; g.DrawString("Soso " + i.ToString(), ..., 0 + p.X , i*20 + p.Y);
(es wird addiert, weil AutoScrollPosition negative Werte beinhaltet)
-
Das hat funktioniert ! Dankeschön ! Blos verstehe ich partout nicht, weshalb man p.X bzw p.Y dazuaddieren muss. Wenn man diese weglässt, schreibt DrawString durcheinander. Vielleicht trivial und einfach zu verstehen, trozdem ... ?