myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » Wie kann ich Buttons durch tiefer liegende Schichten erzeugen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann ich Buttons durch tiefer liegende Schichten erzeugen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
hlag hlag ist männlich
myCSharp.de-Mitglied

Dabei seit: 04.03.2013
Beiträge: 8
Entwicklungsumgebung: Visual C# 2010 Express
Herkunft: Bonn


hlag ist offline

Wie kann ich Buttons durch tiefer liegende Schichten erzeugen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Leute,

hier wieder eine dumme Frage. So dumm, dass ich nicht weiß, wie ich da gezielt bei Google suchen muss.

Ich habe eine Windows-Forms-Oberfläche. Diese ist recht trivial, da gibts nur ein paar wenige Buttons.

Jetzt möchte ich aber einige Buttons von der Software erstellen lassen. Präzise: ich baue eine Steuerung für eine Modellbahn. Diese hat Weichen.

Die Weichen sind Objekte mit dem Status geradeaus oder Abzweig.
Die Anzahl Weichen liest sich die Software aus einer Konfigurationsdatei ein, ebenso die Adressen, unter denen diese erreichbar sind.

Jetzt soll für jede Weiche ein Button auf der oberfläche sein: rot für abzweig, grün für geradeaus.
Klickt man drauf, ändert sich die Farbe und die Weiche schaltet sich um

Hab das soweit dann tatsächlich hinbekommen: ich habe die Oberfläche als Referenz an meine Application weitergegeben, von dort an jede einzelne Weiche, dann in der Klasse Weiche Buttons erstellt, die ich über Controls.Add auf die Oberfläche gemalt habe.

Tuts. Scheint mir aber ein unsauberer Weg zu sein. Bei php und Javascript würde ich Leute erschlagen, die grafische Anweisungen im logischen Teil unterbringen....

Gibts da ne Best Practise? Irgendein Buch oder eine Webseite, die ich zum Thema mal durcharbeiten soll?

Wonach kann ich da sinnvollerweise suchen?


(Mein Problem ist, dass ich Autodidakt bin und bei verschiedenen Dingen, selbst wenn ich sie gelöst habe, unter Umständen den Fachbegriff dafür nicht weiß. Und bei irgendwelchen Tutorials stoße ich schnell an die ein oder andere Grenze - Grenze eins: nein, ich brauche keine Erklärung für Objekte, Verweise und Werte-Typen. Die Basics sind mor geläufig. Grenze zwei: wenn ich die Syntax der Beispiele nicht mal mehr verstehe... Irgendwie suche ich noch das Buch "C# für Leute, die nur so doof wie Klaus sind..." )

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von hlag am 03.08.2020 16:28.

Neuer Beitrag 03.08.2020 16:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.426
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dein Gedankengang ist intuitiv richtig. Die Begriffe dafür sind u.a.  Schichtentrennung,  Separation of concerns (SoC),  MVVM (bei WPF) oder MVC (bei WinForms).

Bei allen diesen Architektur- und Design-Entscheidungen verfolgt man als Ziel, modularen und wiederverwendbaren Code zu schreiben, der möglichst unabhängig von anderem Code getestet, gewartet und weiterentwickelt werden kann.

Blogs, Bücher und Videos zum Thema findest du unter den Schlagworten "software architecture" oder "design patterns".
Neuer Beitrag 03.08.2020 16:55 Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.677
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo hlag,

der sinnvollste Weg ist hierbei die Verwendung von Ereignissen:  [FAQ] Eigenen Event definieren / Information zu Events (Ereignis/Ereignisse) (wie es auch in  [FAQ] Kommunikation von 2 Forms vorgeschlagen/verwendet wird).

Du informierst von der Logik-Klasse aus die UI (d.h. diese abonniert sich dann auf das Ereignis) und die UI erstellt dann aus den übergebenen Informationen (dafür dann eine eigene EventArgs-Klasse erzeugen) die passenden Controls.
Neuer Beitrag 03.08.2020 17:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 13.08.2020 16:33