Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Zentrales ToolStrip für alle Fenster
Malcom
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

Zentrales ToolStrip für alle Fenster

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5.299

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Malcom
myCSharp.de - Member



Dabei seit:
Beiträge: 54

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5.299

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Andreas.May
myCSharp.de - Member

Avatar #avatar-2474.gif


Dabei seit:
Beiträge: 915

beantworten | zitieren | melden

@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(
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2.760
Herkunft: München

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers