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
Applikation mit Outlook-like Layout
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

Applikation mit Outlook-like Layout

beantworten | zitieren | melden

Hi!

Ich bräuchte konzeptionelle Hilfe...

Ich möchte gerne eine Applikation entwickeln die aus mehreren Teilbereichen
("Modulen") besteht. Deshalb auch der Gedanke an das Outlook-UI da es
wirklich passen würde.

Ich möchte aber für die Applikation nur eine Hauptform haben. Darum hab ich
mir folgendes gedacht: Die Navigation und die "Platzhalter" (Panels) wo die
anderen Controls (Toolbar, Statusbar, Datagrid, Tree,...) hin sollen sind im MainForm
vorgegeben. Wenn ich in der Navigation auf einen Eintrag klicke
werden die für diesen Bereich notwendigen Usercontrols in die jeweiligen Panels
geladen.

Soweit könnte ich es mir noch vorstellen. Wie können aber nun diese einzelnen
Controls untereinander "kommunizieren". Also wenn ich auf ein Symbol in der Toolbar
klicke muss die Methode dahinter ja irgendwie "wissen" ob und welches Element im Datagrid
markiert ist. Das selbe mit Treeview und Datagrid....

Bin ich generell mit meinen Überlegungen am richtigen Weg oder ist das komplett für den Müll?
Bitte um ein paar Anregungen wie ichs angehen soll...

thx
private Nachricht | Beiträge des Benutzers
Yellow
myCSharp.de - Experte

Avatar #avatar-2347.png


Dabei seit:
Beiträge: 832

beantworten | zitieren | melden

hallo,

schau' Dir doch mal das Beispiel von Rainbird zu MVC an. Er hat zum Thema hierzu eine kleine Beispielanwendug geschrieben. Du findest sie hier:

Tree(Node) Collection als Zwischenschicht bauen

-yellow
Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Wenn es was kosten darf ... es gibt auch ganze Frameworks die genau diesen Style verwenden...
http://www.devigus.com/Produkte/vdx.aspx
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

Auch wenns interessant aussieht ist es nicht wirklich zum Einsetzen:
Zitat
Wir bieten VDX 2.0 ausschliesslich im Zusammenhang mit Projektarbeiten und Weiterbildungen / Coaching an.
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Ups sorry das war nicht immer so....

Früher wurde das Teil auch einfach so verscherbelt.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
Seyyedi
myCSharp.de - Member

Avatar #avatar-2412.png


Dabei seit:
Beiträge: 186

beantworten | zitieren | melden

Wenns gleich Outlook 2007 Style sein soll und auch was kosten darf: DotNetBar

Gruß
DCoder

[EDIT] Oh mann, ich hätte mir vielleicht mal den Beitrag durchlesen sollen 8) - hab nur den Titel gesehen und dachte halt gleich an Designs [/EDIT]
private Nachricht | Beiträge des Benutzers
Andreas.May
myCSharp.de - Member

Avatar #avatar-2474.gif


Dabei seit:
Beiträge: 925

beantworten | zitieren | melden

Also empfehle dir wenn das vorrhast auf keinen Fall nur die Objektorientierte Programmierung anzugehen. Der Quellcode explodiert und wird unübersichtlich.


Schau dir mal Design Pattern Programming an. Es kostet zu beginn Zeit und war zumindest für mich sehr verwirrend. Aber es spart später unglaublich viel Zeit und erleichtert das Kommunizieren ungemein von Controls oder Formularen. Ein Kollege zeigte mir zum Glück wie so etwas geht.

Ich habe leider kein kleines Beispielprojekt dazu, aber in zwei Wochen gäbe es die Möglichkeit mal eines reinzustellen. In der Suche wird man sicher über ‚Design Pattern’ etwas finden.

Der Grobe Ansatz davon: Du brauchst ein Interface für deine Commands die du den controls mitgeben möchtest. Das Control selbst braucht ein Objekt das ein solches Interface kapseln oder sich merken kann (daher leider eigene Controls oder solche Sachen wie den Tag vom MenuStripItem nutzen). Jede deiner Klassen die eine Action ausführen muss braucht die Ableitung von diesen Interface. Es empfiehlt sich aber eine abstrakten Klasse zu erstellen die das Inetrface beinhaltet. Nun kann man wie folgt vorgehen, jede der Klassen welche Actions ausführen soll beinhaltet als Ableitung die abstrakte Klasse. Das heißt dass alle vom selben Typ sind. Mit einen eigenen Delegate kannst dann das Command transportieren und sich selbst über eine methode die eben im Interface von Command definiert ist die Kalsse sich selbst ausführen lassen. Es geht noch schöner wenn man die Methode dann überladet und sie als DelegateTarget für zum Beispiel ein Klick Event nimmt.

Das Lustige dran, deine Formulare bekommen die Informationen mit Sender aber müssen sie nicht mal verarbeiten

/ps
Klasse ist es dann noch einen Eventhandler einzubauen in der Hauptaplication in dem man dann via Consolenausgabe dann die einzelnen Commands ausgibt. Sieht klasse aus da man immer weis, was wurde grade gemacht und das bei jeder Action.
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
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

@ Dcoder:

Es geht mir eigentlich nicht um das _Design_ von Outlook (Farben,..) sondern
um das _Layout_ oder auch Layout-Struktur. Wie die Komponenten aussehen ist mir im Moment noch egal. Trotzdem Danke für Deinen Hinweis auch wenn ich DotnetBar schon hab

@Andreas.May:

Ein kleines Beispielprojekt wäre sicherlich recht hilfreich...

Ich hab in letzter Zeit ettliches über die Möglichkeiten die ich hab gelesen
und irgendwie versteh ich nur noch Bahnhof.
private Nachricht | Beiträge des Benutzers
Andreas.May
myCSharp.de - Member

Avatar #avatar-2474.gif


Dabei seit:
Beiträge: 925

beantworten | zitieren | melden

Wird leider ein bisschen dauern.
Mache aber ein kleines Demo-Projekt.
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
Rainbird
myCSharp.de - Experte

Avatar #avatar-2834.jpg


Dabei seit:
Beiträge: 3953
Herkunft: Mauer

Mvc

beantworten | zitieren | melden

Hallo [email protected],

was Du machen willst, löst man am besten mit dem MVC-Entwurfsmuster. Yellow hat ober bereits einen Link zu einer kompletten Beispielanwendung gepostet. In diesem Beispiel werden Forms und Controls dynamisch erzeugt und kommunizieren über Events. Die Anzeigeelemente sind entkoppelt und ermöglichen damit automatisch eine Plugin-Architektur.
private Nachricht | Beiträge des Benutzers