ankon Geschrieben 28. Juni 2020 Geschrieben 28. Juni 2020 (bearbeitet) Hallo, als ein Anfänger beginne ich C# zu lernen. Als selbstlernbuch habe ich das Buch genommen: https://www.rheinwerk-verlag.de/einstieg-in-c-mit-visual-studio-2019_4904/ wovon unter "Materialien" die begleitende Beispiele heruntergeladen habe. Die Entwicklungsumgebung ist Visual Studio 2019. Beispiel-Projekt Steuerelemente.sln habe ich geöffnet, Beschreibung im Buch: Abschnitt 1.6.3, (siehe Bild_03 im Anhang): Im Buch sind für Projekt 3 eingebundene Namensräume erwähnt: using System; using System.Drawing; using System.Windows.Forms; Ich habe das Projekt "Steuerelemente.sln" geöffnet und gestartet (s. Anhang: Bild_01) Im geöffnenen Projekt, Projektdatei "Program.cs" sehe ich vom Anfang nur 2 Namensräume: using System; using System.Windows.Forms; Ich versuchte es, sowohl vor als auch während der Ausführung "using System.Drawing;" selbst manuell zu addieren - das bleibt ausgegraut... Warum? Ist das kritysch? Ich sehe den auf Listing 1.6 aufgeführten programm-code nicht (meine Erwartung war den im Buch aufgeführten Programm-Code im Fenster "Program.cs" zu sehen). Auch im Fenster/Datei "Form1.designer.cs" (s. Anhang) sehe ich nicht den aus dem Buch erwarteten Programm-Code, auch nicht nach dem ich Buttons auf dem Panel gecklickt habe... Was ist bei mir falsch? Wie kann ich den Programm-Code (wie Beispiel im Buch) visualisieren? Nach dem ich alle Buttons im InstrumentenPanel gecklickt habe, erfolgte auch keine Änderung im Code... im Buch geschrieben: Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt, der verändert wurde: private void CmdPositionRel_Click(...) { CmdTest.Location = new Point( CmdTest.Location.X + 20, CmdTest.Location.Y); } .......... ....Code..... Form1.designer.cs.txt Bearbeitet 29. Juni 2020 von Chief Wiggum Urheberrechtlich geschütztes Material entfernt Zitieren
Soios Geschrieben 28. Juni 2020 Geschrieben 28. Juni 2020 System.Drawing ist ausgegraut, weil es im folgenden Code nicht verwendet wird. Aber keine Ahnung ob das deine Frage war...?! KeeperOfCoffee reagierte darauf 1 Zitieren
Whiz-zarD Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 Fängt das Buch echt mit einer WinForms-Anwendung an? Schmeiß das Buch weg. Das führt zu nichts. Man sieht an deinem Post schon, dass du noch nicht verstehst, wie eine grafische Oberfläche funktioniert. In der Program-Klasse wirst du nämlich rein gar nichts sehen. Das einzige, was dort passiert, sind nämlich ein paar Initialisierungen für die Oberflächengestaltung und das Starten der Hauptoberfläche (Form1). Während der Ausführung des Programmes kannst du den Code auch nicht ändern. Wenn du im Projektmappen-Explorer auf Form1 klickst, öffnet sich ein Designer. Dort kannst du dann mit Doppelklick auf den Buttons ein Klick-Event hinzufügen. KeeperOfCoffee reagierte darauf 1 Zitieren
KeeperOfCoffee Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 (bearbeitet) Und genau deshalb lernt man Grundlegendes über eine Programmiersprache in einem Konsolenprogramm. Klicki-Bunti Anwendungen sind leider in den Büchern, damit Anfänger motiviert bleiben und "was sehen". Bin persönlich kein Fan von den Rheinwerk Büchern (viele Sachen im Internet sind wesentlich besser), aber hier hört es sich so an, als hättest du alles ziemlich schnell überflogen. Lies das Thema noch mal durch. Ansonsten: https://docs.microsoft.com/en-US/dotnet/csharp/tour-of-csharp/ Es gibt so viel zu lernen, bevor es eigentlich an die UI gehen sollte. Bearbeitet 29. Juni 2020 von KeeperOfCoffee Zitieren
ankon Geschrieben 29. Juni 2020 Autor Geschrieben 29. Juni 2020 Danke an alle Antworten. Bevor ich das Buch genommen habe, habe ich ein Paar Beispiele mit Console aus dem Internet erfolgreich (ohne Schwierigkeiten) durchgeübt, vor allem zum Thema Schleifen. Nun das Nehmen Aufgaben selbst vom Internet - das sind nicht gesammelte, nicht aufbauend und nicht systematisches Vorgehen. Daher habe ich das Buch genommen. Zitieren
KeeperOfCoffee Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 (bearbeitet) Das Problem ist immer, dass viele "Tutorials im Internet so sind" Es bring einfach gar nichts, Code abzupinseln, wenn man nicht versteht, was den da passiert. Meine Empfehlung: https://dotnet.microsoft.com/learn/videos dort lernst du zwar jetzt nicht alles nur Erdenkliche, aber du hast alles für einen guten Start (plus es ist kostenlos). Wenn du mit der englischen Sprache Probleme hast => gleich daran arbeiten...du kommst nicht weit, wenn du Englisch nicht verstehst. Auch nützlich: Es gibt viele bekannte .NET Entwickler auf Youtube. Videos sidn per se nicht schlecht, man muss nur wissen ob die Person legit ist. Bearbeitet 29. Juni 2020 von KeeperOfCoffee 0x00 reagierte darauf 1 Zitieren
ankon Geschrieben 29. Juni 2020 Autor Geschrieben 29. Juni 2020 vor 5 Stunden schrieb Whiz-zarD: Wenn du im Projektmappen-Explorer auf Form1 klickst, öffnet sich ein Designer. Dort kannst du dann mit Doppelklick auf den Buttons ein Klick-Event hinzufügen. Danke. Ich habe die Form1.Designer.cs geöffnet, Programm-Ausführung gestartet -> nur dann kam das Panel mit Buttons. Ich habe auf einigen Buttons doppelgeklickt, aber in Form1.Designer.cs keine Änderungen (keine Klicksevent) beobachtet. Den Code in Form1.Designer.cs habe ich vor dem Programm-Ausführung gespeichert und nach der Programm-Ausführung im Notepad++ compare durchgeführt. Die beide Codes (nach und vor dem Doppelkclicks auf Buttons) war gleich, keine Events oder Änderungen sichtbar. Auch Anzahl der Zeilen in beiden dateien sind gleich. Mache ich was falsch dabei? Die Datei mit Code habe ich Form1.Designer.cs.txt habe ich schon oben beigefügt und jetzt hänge ich noch Fragment vom Abgleich an. Zitieren
KeeperOfCoffee Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 Code wird nicht bearbeitet, wenn du ihn das Programm startest. Wenn das Programm läuft werden keine Code-Änderungen vorgenommen. Du sollst auf die Buttons im Designer klicken. Unpopular Opinion: Nimm dir Visual Studio Code und lerne nur mit Code und Compiler... Zitieren
Whiz-zarD Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 vor 2 Stunden schrieb ankon: Form1.Designer.cs habe ich vor dem Programm-Ausführung gespeichert und nach der Programm-Ausführung im Notepad++ compare Du sollst ja nicht auf die Designer-Datei klicken. Die wird automatisch von Visual Studio generiert und beinhaltet den Code für die Oberfläche. Du sollst auf Form1.cs klicken. Zitieren
tkreutz2 Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 (bearbeitet) vor 9 Stunden schrieb KeeperOfCoffee: Und genau deshalb lernt man Grundlegendes über eine Programmiersprache in einem Konsolenprogramm. Klicki-Bunti Anwendungen sind leider in den Büchern, damit Anfänger motiviert bleiben und "was sehen". Bin persönlich kein Fan von den Rheinwerk Büchern (viele Sachen im Internet sind wesentlich besser), aber hier hört es sich so an, als hättest du alles ziemlich schnell überflogen. Lies das Thema noch mal durch. Ansonsten: https://docs.microsoft.com/en-US/dotnet/csharp/tour-of-csharp/ Es gibt so viel zu lernen, bevor es eigentlich an die UI gehen sollte. Na, wenn man das richtige Buch kauft, bekommt man auch eine passendere Einführung z.B. Grundlagen und OOP vor GUI-Themen. https://www.rheinwerk-verlag.de/c-8-mit-visual-studio-2019_4699/ Aber an ein Fertiggericht für 3.40 EUR darf man auch nicht die gleichen Anforderungen stellen, als an das Stück Fleisch in einem guten Restaurant auf dem Teller. Deswegen ist das Thema "Arbeitsmethoden" ja wohl auch ein Bestandteil einer Ausbildung - würde ich vermuten. https://www.hanser-fachbuch.de/buch/Visual+C+2019+Grundlagen+Profiwissen+und+Rezepte/9783446458024 Unbedingt die englischen Titel durchstöbern, die sind meistens besser also im Pearson Verlag z.B. https://bookshop.pearson.de/starting-out-with-visual-c-global-edition.html https://bookshop.pearson.de/visual-c-2014-how-to-program-global-edition.html Bearbeitet 29. Juni 2020 von tkreutz2 Zitieren
Visar Geschrieben 29. Juni 2020 Geschrieben 29. Juni 2020 vor 17 Stunden schrieb ankon: https://www.rheinwerk-verlag.de/einstieg-in-c-mit-visual-studio-2019_4904/ Falsches Buch von Rheinwerk gewählt. C# 8 mit Visual Studio 2019 wäre hingegen empfehlenswert. Habe C# selbst weitestgehend mit der 2015er-Variante des Buches gelernt. tkreutz2 reagierte darauf 1 Zitieren
ankon Geschrieben 6. Juli 2020 Autor Geschrieben 6. Juli 2020 Am 29.6.2020 um 15:36 schrieb Whiz-zarD: Du sollst ja nicht auf die Designer-Datei klicken. Die wird automatisch von Visual Studio generiert und beinhaltet den Code für die Oberfläche. Du sollst auf Form1.cs klicken. Ja, danke, ich habe auf Form1.cs Entwurf geklickt und damit auf Panel mit buttons gekommen. Dann indem ich entsprechende Button geklickt (z.B. "Position Rel") -> bin ich in entsprechende Zeile im Fentster Form1.cs mit Code gelandet, z.B.hierhin: private void CmdPositionRel_Click(object sender, EventArgs e) { CmdTest.Location = new Point( //gegen dieser Zeile steht vorne ein Marker CmdTest.Location.X + 20, CmdTest.Location.Y); } Aber was wollte dem Leser des Buches somit gezeigt werden? Ich habe nicht gesehen, dass nach dem Button-Click dieses oder anderes Teil des Codes im Fenster erscheint. War dieses Teil des Programm-Codes vor dem Ausführen des Programms geschrieben (damit nach dem Drucken auf entspr. Button), damit das Feld "Test" (auf Panel mit buttons) sich bewegte? Zitieren
Whiz-zarD Geschrieben 6. Juli 2020 Geschrieben 6. Juli 2020 Damit sollte gezeigt werden, das was sich hinter CmdTest verbirgt (eine TextBox, ein Button, keine Ahnung) um 20 Pixel nach rechts verschoben wird. Zitieren
KeeperOfCoffee Geschrieben 6. Juli 2020 Geschrieben 6. Juli 2020 (bearbeitet) vor 39 Minuten schrieb ankon: Dann indem ich entsprechende Button geklickt (z.B. "Position Rel") -> bin ich in entsprechende Zeile im Fentster Form1.cs mit Code gelandet, z.B.hierhin: private void CmdPositionRel_Click(object sender, EventArgs e) { CmdTest.Location = new Point( //gegen dieser Zeile steht vorne ein Marker CmdTest.Location.X + 20, CmdTest.Location.Y); } Aber was wollte dem Leser des Buches somit gezeigt werden? Ich habe nicht gesehen, dass nach dem Button-Click dieses oder anderes Teil des Codes im Fenster erscheint. Du missverstehst hier etwas. Wenn du im Designer (NICHT wenn du ausführst) auf ein Steuerelement (hier Button) doppelklickst, dann generierst Visual Studio automatisch ein typischen Eventhandler (+ Event aber das siehst du nur in der Designer File, die standardmäßig etwas versteckt ist) für dieses Steuerelementes ( bei der Checkbox ein Checked Event/Handler, beim Button ein Clicked Event/Handler). Wenn du dein Programm ausführst, wird NICHTS generiert. Warum auch, wenn dein Programm läuft soll ja kein Code generiert werden. Wenn du auf den Button klickst, wenn dein Programm ausgeführt ist, wird CmdPositionRel_Click als Handler für das Click-Event ausgelöst. Und deswegen hasse ich Bücher...du missverstehst etwas, hast nen falschen Gedanken im Kopf, und kommst nicht mehr weiter Bearbeitet 6. Juli 2020 von KeeperOfCoffee Zitieren
ankon Geschrieben 6. Juli 2020 Autor Geschrieben 6. Juli 2020 vor 26 Minuten schrieb KeeperOfCoffee: Du missverstehst hier etwas. Wenn du im Designer (NICHT wenn du ausführst) auf ein Steuerelement (hier Button) doppelklickst, dann generierst Visual Studio automatisch ein typischen Eventhandler (+ Event aber das siehst du nur in der Designer File, die standardmäßig etwas versteckt ist) für dieses Steuerelementes ( bei der Checkbox ein Checked Event/Handler, beim Button ein Clicked Event/Handler). Wenn ich im Designer (NICHT wenn du ausführst) auf ein Steuerelement (hier Button) doppelklicke: zur Klärung: "Im Designer" - meinen Sie auf dem Panel mit buttons und Labels oder in einem Fenster? Wenn ja - im welchen Fenster (da gibt es mehrere (Anhang beigefügt und grün markiert)? Sehe ich dann dort ein von Visual Studio automatisch generierten Event (+ Event) live? Zitieren
JustALurker Geschrieben 6. Juli 2020 Geschrieben 6. Juli 2020 (bearbeitet) vor 53 Minuten schrieb ankon: im welchen Fenster (da gibt es mehrere (Anhang beigefügt und grün markiert)? Wenn du in der Datei "Form1.cs [Entwurf]" einen Button hinzufügst, wird dieser automatisch von Visual Studio in der Datei "Form1.Designer.cs" hinterlegt. Die Funktionalität, die du erhältst, wenn du doppelt auf diesen Button im Entwurfsfenster klickst, befindet sich dann in der Datei "Form1.cs", die du ja in dem beigefügten Screenshot schon an der korrekten Stelle offen hast. Ich finde es auch etwas schade, dass das Buch dich direkt in ein scheinbar fertiges Beispielprojekt reinwirft und nicht wie andere bereits erwähnt haben von vorne mit den Grundlagen beginnt. Klar sieht die Konsole, dann nicht so schön aus wie eine Anwendung mit GUI, aber es wäre um ein vielfaches einfacher nachzuvollziehen, wie der Programmcode funktioniert. Wenn es aber trotzdem mit GUIs und der Hilfe von Visual Studio weitergehen soll, würde ich dir empfehlen, unabhängig vom Buch einfach ein neues Projekt zu erstellen, dir alle Dateien und Klassen mal anzuschauen, dann mal einen Button hinzufügen und prüfen welche Dateien sich verändert haben, dann doppelt auf den Button klicken und noch mal festzustellen, welchen Code Visual Studio für dich generiert hat. Bearbeitet 6. Juli 2020 von JustALurker - Zitieren
Whiz-zarD Geschrieben 6. Juli 2020 Geschrieben 6. Juli 2020 vor 1 Stunde schrieb ankon: Wenn ich im Designer (NICHT wenn du ausführst) auf ein Steuerelement (hier Button) doppelklicke: zur Klärung: "Im Designer" - meinen Sie auf dem Panel mit buttons und Labels oder in einem Fenster? Wenn ja - im welchen Fenster (da gibt es mehrere (Anhang beigefügt und grün markiert)? Sehe ich dann dort ein von Visual Studio automatisch generierten Event (+ Event) live? Rechts, im Projektmappen-Explorer hast du die Form1.cs. Dort machst du ein Doppelklick drauf. Dann öffnet sich der Designer, wo du deine Buttons, TextBoxes, etc. in die Oberfläche hinzufügen kannst. In den .Designer.cs-Dateien sollst du nichts ändern. Die werden von Visual Studio automatisch generiert und deine Änderungen könnten ggf. überschrieben werden. Also merke: In den .Designer.cs-Dateien brauchst du nichts tun. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.