Laden...

ToolStrip verdeckt Scrollbar

Erstellt von Beren vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.936 Views
B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren
ToolStrip verdeckt Scrollbar

Moin allerseits.

Ich habe eine Form mit einem Panel drauf. In das Panel wird gezeichnet. Das Panel ist auf Autoscroll und Dockstyle.Fill, da die angezeigte Grafik weitaus größer ist, als der Bildschirm.

Füge ich meiner Form jetzt ein Toolstrip hinzu, verdeckt dieses die horizontale Scrollbar meines Panels.

Ich habe folgendes versucht:

AutoSize off und die vertikale Größe des Panels begrenzen. Funktioniert aber irgendwie nicht, wenn Dockstyle.Fill gesetzt ist.

Kommentiere ich Dockstyle.Fill aus, kann ich zwar die Panelgröße begrenzen, aber die Scrollbars werden nicht mehr angezeigt.

Wie kann man dieses Problem umgehen?

Gruß
Beren

Das Leben ist beschissen. Aber die Grafik ist geil! 😁

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Beren,

es kommt darauf an, welche Controls du in welchen Container hinzufügst, in welcher Reihenfolge du das tust und mit welchem DockStyle. Siehe dazu vordrängelnde Controls (Control.Dock)

herbivore

D
89 Beiträge seit 2008
vor 16 Jahren

nur ne idee:

setz den Toolstrip z.B. mit der eigenschaft ".Dock = Top" an den oberen rahmen und danach dein DockStyle.Fill . kannst natürlich auhc ne andere seite nehmen , frei nach schnauze ^^

Mfg Dex

ps. Codebeispiel:


Toolstrip1.Dock = Top;
Panel1.Dockstyle.Fill; 


[edit]

Herb war schneller =(

[/edit]

B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren

Hi

Oje... Dann liegts wohl an der Reihenfolge. Die Menüleiste und den Toolstrip habe ich mit dem Editor erstellt. Das Panel erzeuge ich selbst.... Jetzt wirds kompliziert, das gerade zu biegen...

Gruß
Beren

Das Leben ist beschissen. Aber die Grafik ist geil! 😁

D
89 Beiträge seit 2008
vor 16 Jahren

müsste aber trotzdem gehen 😉

B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren

Hallo herbivore

Ich habs mir durchgelesen, aber wirklich weiter bringt mich der Text nicht.

Ich denke da an eine andere Lösung.

  • Dockstyle des Panels auf None
  • Size selbst bestimmen (in der Vertikalen gerade so groß, dass nichts von dem Toolstrip verdeckt wird

Nur bekomme ich die Scrollbars nicht angezeigt, wenn ich Dockstyle auf none setze.

Ich zeig Dir mal meinen Code:

public void CustomizeForm()
        {
            ctrlCurrForm1 = this;
            ctrlCurrForm1.MaximumSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height - 32);
            ctrlCurrForm1.Location = new Point(0, 0);
            ctrlCurrForm1.Size = new Size((int)(timeRange / properties.reso), 32 * numberOfSignalStripes);  

            ctrlPanel = new MyPanel();
            ctrlPanel.Dock = DockStyle.None;
            ((Panel)ctrlPanel).AutoScroll = true;
            ((Panel)ctrlPanel).AutoSize = false;
            ((Panel)ctrlPanel).AutoScrollMinSize = new Size((int)(timeRange / properties.reso), properties.signalStripeHeight * numberOfSignalStripes + properties.signalStripeDist * (numberOfSignalStripes + 1) + 60);
            ctrlPanel.Location = new Point(0, 0);
            ctrlPanel.Size = new Size((int)(timeRange / properties.reso) + signalBoxPosOffsetX, signalStripeHeight * numberOfSignalStripes + signalStripeDist * (numberOfSignalStripes+1)-500);
            //ctrlPanel.Size = new Size((int)(timeRange / properties.reso) + properties.signalBoxPosOffsetX, 200);
            ctrlPanel.Paint += PanelPaint;
            ctrlPanel.MouseClick += OnMouseClick;
            ctrlPanel.MouseDown += OnMouseDown;
            ctrlPanel.MouseUp += OnMouseUp;
            ctrlPanel.MouseMove += OnMouseMove;
            ctrlCurrForm1.Controls.Add(ctrlPanel);
        }

Was meint Ihr, ist das machbar?

Dexter, Deine Idee habe ich ausprobiert. Nur, daß die Toolstrip Leiste dann direkt unter der Menüleiste klebt 😉
Eigentlich sollte sie ja am unteren Bildschirmrand angezeigt werden...

Gruß
Beren

Das Leben ist beschissen. Aber die Grafik ist geil! 😁

B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren

Ansonsten: Wie ist es möglich die z-order zu ändern? Das wäre wohl die einfachste Lösung...

Das Leben ist beschissen. Aber die Grafik ist geil! 😁

D
89 Beiträge seit 2008
vor 16 Jahren

dann nimm statt "Top" --> "Bottom" .. wie schon vorher gesagt:

kannst natürlich auch ne andere seite nehmen , frei nach schnauze

es gehen alle seiten des Forms ("Top","Bottom","Left","Right")!

B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren

Hi Dexter

Hab ich ja auch schon probiert. Das Toolstrip verdeckt trotzdem den unteren Teil des Panels...

Beren

Das Leben ist beschissen. Aber die Grafik ist geil! 😁

D
89 Beiträge seit 2008
vor 16 Jahren

kannst du den toolstrip auch per code erstelle, denn aus erfahrung weiß ich , dass dich gui erstellte dinge nicht gut mit selbst geschriebenem vertragen !

B
Beren Themenstarter:in
163 Beiträge seit 2008
vor 16 Jahren

Okay, es läuft.

Weiss jetzt, wie man die Z-Order ändert. Erstelle das Panel jetzt vor der Menüleiste und vor der ToolStripBar.

Danke für Eure Hilfe!

Beren

Das Leben ist beschissen. Aber die Grafik ist geil! 😁