Laden...

Zentrales ToolStrip für alle Fenster

Erstellt von Malcom vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.614 Views
M
Malcom Themenstarter:in
54 Beiträge seit 2008
vor 15 Jahren
Zentrales ToolStrip für alle Fenster

Schönen guten Abend!

Bisher habe ich in meinen Anwendungen in jedem Fenster ein ToolStrip hinzugefügt, um dort die Buttons zur Navigation anzuzeigen. Sprich, um z.B. mittels "BindingSource.MoveNext" auf den nächsten Datensatz zu springen.

Nun habe ich eine Anwendung, in der immer in der Hauptform nur ein Fenster geöffnet sein soll. Darüber hinaus soll sich nun das ToolStrip nicht mehr in den geöffneten Fenstern befinden, sondern es soll nur ein zentrales ToolStrip in der Hauptform vorhanden sein.

Nun zu meiner Frage: Ich arbeite ja mit DataSets und BindingSources. Wie kann ich nun zentral durch die Daten des jeweilig geöffneten Fensters mittels des ToolStrips aus der Hauptform navigieren?

Ich hoffe, dass ich es einigermaßen verständlich rüberbringen konnte!? *g

Viele Grüße
Malcom

5.299 Beiträge seit 2008
vor 15 Jahren

Hi!

So ähnlich, wie du es wünschst, verhält sich der Menustrip in Kombination mit MDI-Parent / MDI-Children. Wenn das Childform maximiert wird, werden seine MenuItem automatisch ins Menu des Parents hineingemergt.

Am prinzipiellen Aufbau würde sich gar nix ändern, nur dasde Menustrip statt Toolstrips nimmst.
Scheint mir auch vonne Komplexität her einfacher, daß jedes Form seine Menuzeile behält, anstatt daß da ständig die Events des Hauptforms umgestöpselt werden.

Ach, und so vorwärts/rückwärts-Buttons findich eh unergonomisch.
Ich zeige die Datensätze (ausgesuchte Spalten) in einem DGV an, und kann mit Cursortasten rauf und runter-navigieren, mit der Scrollbar große Sprünge tun, und habe außerdem einen Überblick (die ausgesuchten Spalten), was die Datensätze wohl enthalten.

Der frühe Apfel fängt den Wurm.

M
Malcom Themenstarter:in
54 Beiträge seit 2008
vor 15 Jahren

Erstmal danke für deine Antwort!

Es soll aber mit einem ToolStrip realisiert werden und wie gesagt ein zentrales dafür genutzt werden. Wie könnte man sowas denn realisieren.....hast du (oder habt ihr) irgendwelche Lösungsansätze? Im ToolStrip habe ich Buttons zum Navigieren durch die Daten und zum Löschen Anlegen usw.!

Die Daten lasse ich auch mittels eines DataGridViews anzeigen, dass mit dem Buttons zum Navigieren, ist nur noch eine zusätzliche Möglichkeit für den Benutzer.

Viele Grüße
Malcom

5.299 Beiträge seit 2008
vor 15 Jahren

Naja, dann musste hier im Forum nach "Form2Form" suchen, um die Kommunikation zwischen den Forms sauber hinzukriegen, und dann die Main-ToolstripItems an je das zuoberst liegende Form anstöpseln.
Einfach und übersichtlich findich das aber nicht.
Oder die Children abonnieren (mittelbar!) die Clicks der Main-ToolstripItems, und checken je vorher, ob das Form den Focus hat.

Der frühe Apfel fängt den Wurm.

915 Beiträge seit 2006
vor 15 Jahren

@Malcom

Da du nicht mit MDI-Parent / MDI-Children arbeitest ist es mir nicht genau verständlich was du mit MainForm und anderen Fenstern genau meinst. Beinhaltet dein Hauptformular über MainForm.Controls.Add(Form1) ein Formular usw?

Ich denke am besten wäre ein kleines Bild wie man sich das ganze vorzustellen hat.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

2.760 Beiträge seit 2006
vor 15 Jahren

Ein Command-Pattern scheint mir hier sinnvoll.
MDI Anwendung bauen und in das MDI-Parent den Toolstrip rein, jeder Button im Toolstrip löst ein Command aus und schickt es an den gerade aktiven Receiver (aktuelle MDI-Child form). Vorher prüft der potenzielle Command receiver noch ob er das Command überhaupt ausführen kann und gut ist.

Du hast dann immer die selben Commands für alle Forms und musst sie auch nur einmal implementieren.