Zum Inhalt springen

C# -Übung für Anfänger. Eigenschaften zur Laufzeit ändern: erwartete ProgrammCode nicht sichtbar


Empfohlene Beiträge

Geschrieben (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.....

Bild_01.JPG

Form1.designer.cs.txt

Bearbeitet von Chief Wiggum
Urheberrechtlich geschütztes Material entfernt
Geschrieben

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.

Geschrieben (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 von KeeperOfCoffee
Geschrieben

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.

Geschrieben (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 von KeeperOfCoffee
Geschrieben
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.

Form1.Designer_Abgleich_01.JPG

Geschrieben

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...

Geschrieben
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.

 

Geschrieben (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 von tkreutz2
Geschrieben
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?
 

Geschrieben (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 :D 

 

Bearbeitet von KeeperOfCoffee
Geschrieben
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?

fr_002.JPG

Geschrieben (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 von JustALurker
-
Geschrieben
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.

grafik.png.fc740c7d5dbd7cbb63ac5ca0598c1da7.png

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...