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! 😁
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
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]
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! 😁
Hallo herbivore
Ich habs mir durchgelesen, aber wirklich weiter bringt mich der Text nicht.
Ich denke da an eine andere Lösung.
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! 😁
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! 😁
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")!
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! 😁
kannst du den toolstrip auch per code erstelle, denn aus erfahrung weiß ich , dass dich gui erstellte dinge nicht gut mit selbst geschriebenem vertragen !
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! 😁