Laden...

MDI-Autoscroll

Erstellt von pringels vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.159 Views
P
pringels Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren
MDI-Autoscroll

Hallo Welt,

ich habe eine MDI-App. Bei den Childs habe ich die Eigenschaft Autoscroll auf true gesetzt.
Das funktoniert aber nur so lang, wie WindowState nicht maximiert ist.
Wenn ich den Child maximiere, sind die scrollbars weg, obwohl ich sie noch brauche, da nicht alle Steuerelemente zu sehen sind.
Wie bekomme ich Autoscroll bei maximiertem MDI-Child hin???

Vielen Dank schon mal im voraus.
pringels

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo pringels,

AutoScroll sollte auch bei maximierem Fenster funktionieren. Was passiert, wenn du das Fenster auf die gleiche Größe setzt, die ein maximierte Fenster hätte, aber ohne es zu maximieren?

herbivore

P
pringels Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

AutoScroll sollte auch bei maximierem Fenster funktionieren

das ist schon mal gut zu hören.
Also liegts wahrscheinlich an meinen Einstellungen.
Ich habe für mein Mdi-Child eine Mindestgröße von 500x400.
Im MDI-Parent mache ich


            FormMdiChild f = new FormMdiChild();
            f.AutoScroll = true;
            f.MdiParent = this;
            f.Dock = DockStyle.Fill;
            // f.WindowState = FormWindowState.Maximized;
            f.Show();

und die Scrollbars sind da (wenn ich mit dem MDI-Parent unter 500x400 komme).
Auch

f.Size = new Size(1000, 700);

bringt Scrollbars hervor.

Wenn ich aber

f.WindowState = FormWindowState.Maximized

mache oder auf den Maximieren-Button ( [] ) drücke, sind die Scrollbars weg.
An welchen Einstellungen könnte es denn noch hängen?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo pringels,

also ich habe es ausprobiert. Bei mir geht es.

Hast du AutoScrollMinSize gesetzt? Solltest du eigentlich nicht. Wenn man zu allen Controls scrollen können will, muss man nur AutoScroll auf true setzen (vielleicht noch mit AutoScrollMargin einen kleinen Rand einstellen).

Wenn du AutoScrollMinSize auf 500x400 gesetzt hast, würde mich es wundern, wenn bei Size = new Size(1000, 700) noch Scrollbars zu sehen sind.

herbivore

P
pringels Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

ich habe Form.MinimumSize auf 500x400 gesetzt und nicht AutoScrollMinSize.

P
pringels Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

jetzt habe ich eine andere Ursache gefunden.
Das MDI-Child enthält ein Tab-Controll mit DockStyle.Fill.
Wenn ich den DockStyle.None nehme, funktioniert alles super.
Aber das TabControl soll sich mit der Form vergrößern und verkleinern bis auf die MinimumSize.
Wenn die MinSize unterschritten wird, sind ja Teile des TabControls nicht mehr sichtbar und AutoScroll müsste greifen???

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo pringels,

auf Form.Resize reagieren und entsprechend der Größe des Fensters DockStyle und AutoScroll wie gewünscht umstellen.

Wenn die MinSize unterschritten wird

MinimumSize kann nicht unterschritten werden. Wenn das Fenster kleiner werden soll, darf MinimumSize nicht gesetzt sein.

herbivore

P
pringels Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

Ich meinte damit, wenn MDI-Parent kleiner als die Min-Size des MDI-Childs wird...

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo pringels,

hatte ich nicht so verstanden. Abgesehen davon reden wird dann doch davon, dass der MdiParent Scrollbars braucht, oder? Wenn es dafür nicht reicht AutoScrollMinSize des MdiParent entsprechend der MinimumSize des MdiCleint zu setzen, wäre auch für diesen Fall das Grundprinzip meines Vorschlags verwendbar.

herbivore