Auf einen Blick Auf einen Blick 1 Einführung ............................................................................................. 15 2 Grundlagen ............................................................................................ 39 3 Fehlerbehandlung ............................................................................... 115 4 Erweiterte Grundlagen ...................................................................... 129 5 Objektorientierte Programmierung .............................................. 187 6 Wichtige Klassen in .NET ................................................................... 247 7 Weitere Elemente eines Windows-Programms ........................ 303 8 Datenbankanwendungen mit ADO.NET ...................................... 357 9 Internetanwendungen mit ASP.NET ............................................. 413 10 Zeichnen mit GDI+ .............................................................................. 439 11 Beispielprojekte ................................................................................... 455 12 Windows Presentation Foundation .............................................. 481 Inhalt Inhalt 1 Einführung 15 1.1 Aufbau dieses Buchs ................................................................................... 15 1.2 Visual Studio 2017 ....................................................................................... 16 1.3 Mein erstes Windows-Programm ......................................................... 16 1.4 Visual Studio-Entwicklungsumgebung .............................................. 17 1.5 1.4.1 Ein neues Projekt ........................................................................ 17 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.4.10 1.4.11 1.4.12 Einfügen von Steuerelementen ............................................. Arbeiten mit dem Eigenschaften-Fenster .......................... Speichern eines Projekts .......................................................... Das Codefenster .......................................................................... Schreiben von Programmcode ............................................... Kommentare ................................................................................ Starten, Ausführen und Beenden des Programms .......... Ausführbares Programm .......................................................... Schließen und Öffnen eines Projekts ................................... Übung ............................................................................................. Empfehlungen für Zeilenumbrüche .................................... 19 20 23 23 26 27 28 29 29 30 30 Arbeiten mit Steuerelementen .............................................................. 31 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 31 32 33 36 36 37 Steuerelemente formatieren .................................................. Steuerelemente kopieren ........................................................ Eigenschaften zur Laufzeit ändern ....................................... Vergabe und Verwendung von Namen .............................. Verknüpfung von Texten, mehrzeilige Texte .................... Eigenschaft BackColor, Farben allgemein .......................... 2 Grundlagen 39 2.1 Variablen und Datentypen ....................................................................... 39 2.1.1 2.1.2 2.1.3 39 40 40 Namen, Werte ............................................................................. Deklarationen .............................................................................. Datentypen ................................................................................... 5 Inhalt Inhalt 2.1.4 2.1.5 2.1.6 2.2 2.3 Gültigkeitsbereich ...................................................................... Konstanten ................................................................................... Enumerationen ........................................................................... 44 47 48 Operatoren ...................................................................................................... 50 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 Rechenoperatoren ...................................................................... Vergleichsoperatoren ................................................................ Logische Operatoren ................................................................. Verkettungsoperator ................................................................. Zuweisungsoperatoren ............................................................ Rangfolge der Operatoren ....................................................... 50 53 54 55 56 56 3 Fehlerbehandlung 115 3.1 Entwicklung eines Programms ............................................................... 115 3.2 Fehlerarten ...................................................................................................... 116 3.3 Syntaxfehler und IntelliSense ................................................................. 117 Einfache Steuerelemente .......................................................................... 58 3.4 Laufzeitfehler und Exception Handling .............................................. 119 3.4.1 Programm mit Laufzeitfehlern .............................................. 119 3.4.2 3.4.3 Einfaches Exception Handling ............................................... Erweitertes Exception Handling ............................................ 121 123 Logische Fehler und Debugging ............................................................. 124 3.5.1 3.5.2 3.5.3 124 126 126 2.3.1 2.3.2 2.3.3 2.3.4 2.4 2.5 2.6 2.7 6 Panel ............................................................................................... Zeitgeber ....................................................................................... Textfelder ...................................................................................... Zahlenauswahlfeld .................................................................... 58 59 63 66 Verzweigungen ............................................................................................. 67 2.4.1 2.4.2 2.4.3 if...else ............................................................................................. switch...case .................................................................................. Übungen ........................................................................................ 68 75 78 Verzweigungen und Steuerelemente ................................................. 79 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 Kontrollkästchen ......................................................................... Optionsschaltflächen ................................................................ Mehrere Ereignisse in einer Methode behandeln ........... Mehrere Gruppen von Optionsschaltflächen ................... Methode ohne Ereignis, Modularisierung ......................... Schieberegler ............................................................................... 79 82 84 86 89 90 Schleifen ........................................................................................................... 92 2.6.1 2.6.2 2.6.3 for-Schleife .................................................................................... while- und do...while-Schleife ................................................ Übungen ........................................................................................ 92 95 98 Schleifen und Steuerelemente ............................................................... 101 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 101 101 102 104 104 106 Listenfeld ....................................................................................... Listenfeld füllen .......................................................................... Wichtige Eigenschaften ........................................................... foreach-Schleife .......................................................................... Wechsel der Auswahl ................................................................ Wichtige Methoden ................................................................... 2.7.7 2.7.8 3.5 Mehrfachauswahl ...................................................................... Kombinationsfelder ................................................................... Einzelschrittverfahren .............................................................. Haltepunkte ................................................................................. Überwachungsfenster .............................................................. 109 110 4 Erweiterte Grundlagen 129 4.1 Steuerelemente aktivieren ...................................................................... 129 4.1.1 4.1.2 Ereignis Enter ............................................................................... Eigenschaften Enabled und Visible ...................................... 129 132 Bedienung per Tastatur ............................................................................. 135 4.2.1 4.2.2 Eigenschaften TabIndex und TabStop ................................. Tastenkombination für Steuerelemente ............................ 135 136 Ereignisgesteuerte Programmierung .................................................. 137 4.3.1 4.3.2 4.3.3 4.3.4 137 139 141 142 4.2 4.3 4.4 Eine Ereigniskette ....................................................................... Endlose Ereignisketten ............................................................. Textfelder koppeln ..................................................................... Tastatur und Maus ..................................................................... Datenfelder ..................................................................................................... 144 4.4.1 4.4.2 144 146 Eindimensionale Datenfelder ................................................. Ein Feld durchsuchen ................................................................ 7 Inhalt Inhalt 5.7 Delegates ......................................................................................................... 205 5.8 Statische Elemente ...................................................................................... 208 5.9 Vererbung ........................................................................................................ 211 5.10 Konstruktoren bei Vererbung ................................................................. 215 Methoden ......................................................................................................... 160 5.11 Polymorphie .................................................................................................... 217 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 5.12 Schnittstellen ................................................................................................. 221 5.13 Strukturen ........................................................................................................ 224 Generische Typen ......................................................................................... 228 5.14.1 5.14.2 5.14.3 Eine Liste von Zeichenketten .................................................. Eine Liste von Objekten ............................................................ Ein Dictionary von Objekten ................................................... 229 232 235 Eigene Klassenbibliotheken ..................................................................... 238 5.15.1 5.15.2 DLL erstellen ................................................................................. DLL nutzen .................................................................................... 239 241 5.16 Mehrere Formulare ...................................................................................... 242 6 Wichtige Klassen in .NET 247 Klasse String für Zeichenketten ............................................................. 247 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.1.7 6.1.8 6.1.9 248 250 251 253 256 258 259 261 262 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.5 4.6 Weitere Feldoperationen ......................................................... Mehrdimensionale Datenfelder ............................................ Datenfelder initialisieren ......................................................... Verzweigte Datenfelder ........................................................... Datenfelder sind dynamisch ................................................... Einfache Methoden .................................................................... Übergabe per Referenz ............................................................. Methoden mit Rückgabewerten ........................................... Optionale Argumente ............................................................... Benannte Argumente ................................................................ Beliebig viele Argumente ......................................................... Rekursiver Aufruf ........................................................................ Übungen zu Methoden ............................................................ 148 150 155 156 158 161 163 167 169 170 172 173 176 5.14 5.15 Konsolenanwendung .................................................................................. 176 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 Anwendung erzeugen ............................................................... Ein- und Ausgabe von Text ...................................................... Eingabe einer Zahl ...................................................................... Erfolgreiche Eingabe einer ganzen Zahl ............................. Ausgabe formatieren ................................................................ Aufruf von der Kommandozeile ............................................ 176 177 178 180 181 183 6.1 8 5 Objektorientierte Programmierung 187 5.1 Was ist Objektorientierung? ................................................................... 187 5.2 Klasse, Eigenschaft, Methode, Objekt ................................................ 188 5.3 Eigenschaftsmethode ................................................................................. 192 5.4 Konstruktor ..................................................................................................... 194 5.5 Namensräume ............................................................................................... 198 5.6 Referenzen, Vergleiche und Typen ....................................................... 199 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 200 201 202 203 205 Referenzen .................................................................................... Operator == .................................................................................. Objekte vergleichen ................................................................... Typ eines Objekts ermitteln .................................................... Typ eines Objekts durch Vergleich ermitteln .................... 6.2 Eigenschaften der Klasse String ............................................ Trimmen ........................................................................................ Splitten ........................................................................................... Suchen ............................................................................................ Einfügen ......................................................................................... Löschen .......................................................................................... Teilzeichenkette ermitteln ...................................................... Zeichen ersetzen ......................................................................... Ausgabe formatieren ................................................................ Datum und Uhrzeit ...................................................................................... 264 6.2.1 6.2.2 6.2.3 264 266 269 Eigenschaften von DateTime ................................................. Rechnen mit Datum und Uhrzeit .......................................... DateTimePicker ........................................................................... 9 Inhalt Inhalt 6.3 6.4 6.5 7 7.1 7.2 Dateien und Verzeichnisse ....................................................................... 272 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 Lesen aus einer Textdatei ........................................................ Schreiben in eine Textdatei ..................................................... Sicheres Lesen aus einer Textdatei ....................................... Sicheres Schreiben in eine Textdatei ................................... Die Klassen File und Directory ................................................ Das aktuelle Verzeichnis .......................................................... Eine Liste der Dateien ................................................................ Eine Liste der Dateien und Verzeichnisse ........................... Informationen über Dateien und Verzeichnisse .............. 272 274 276 279 280 281 282 283 284 6.3.10 Bewegen in der Verzeichnishierarchie ................................ 285 XML-Dateien ................................................................................................... 287 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 Aufbau von XML-Dateien ......................................................... Schreiben in eine XML-Datei ................................................... Lesen aus einer XML-Datei ...................................................... Schreiben von Objekten ........................................................... Lesen von Objekten .................................................................... 287 288 290 292 294 Rechnen mit der Klasse Math ................................................................. 296 Weitere Elemente eines WindowsProgramms 303 Hauptmenü ..................................................................................................... 303 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.1.6 303 306 308 308 310 311 Kontextmenü ................................................................................................. 312 7.2.1 7.2.2 7.3 10 Erstellung des Hauptmenüs ................................................... Code des Hauptmenüs ............................................................. Klasse Font .................................................................................... Schriftart ........................................................................................ Schriftgröße .................................................................................. Schriftstil ....................................................................................... Erstellung des Kontextmenüs ................................................ Code des Kontextmenüs .......................................................... 312 313 Symbolleiste ................................................................................................... 315 7.3.1 7.3.2 315 316 Erstellung der Symbolleiste .................................................... Code der Symbolleiste .............................................................. 7.4 Statusleiste ...................................................................................................... 319 7.4.1 7.4.2 Erstellung der Statusleiste ...................................................... Code der Statusleiste ................................................................ 319 319 7.5 Eingabedialogfeld ........................................................................................ 321 7.6 Ausgabedialogfeld ....................................................................................... 325 7.7 Standarddialogfelder .................................................................................. 331 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 Datei öffnen ................................................................................. Datei speichern unter ............................................................... Verzeichnis auswählen ............................................................. Farbe auswählen ......................................................................... Schrifteigenschaften auswählen .......................................... 331 333 335 337 338 7.8 Steuerelement ListView ............................................................................ 339 7.9 Steuerelement Chart ................................................................................... 343 7.10 Steuerelement DataGridView ................................................................ 347 7.11 Lokalisierung .................................................................................................. 352 8 Datenbankanwendungen mit ADO.NET 357 8.1 Was sind relationale Datenbanken? .................................................... 357 8.1.1 8.1.2 8.1.3 8.1.4 Beispiel »Lager« ........................................................................... Indizes ............................................................................................ Relationen ..................................................................................... Übungen ........................................................................................ 357 360 362 366 Anlegen einer Datenbank in MS Access ............................................. 368 8.2.1 8.2.2 8.2.3 Aufbau von Access ..................................................................... Datenbankentwurf in MS Access 2016 ............................... Übungen ........................................................................................ 368 369 374 Datenbankzugriff mit C# innerhalb von Visual Studio ............... 374 8.3.1 8.3.2 8.3.3 8.3.4 8.3.5 375 376 376 377 377 8.2 8.3 Beispieldatenbank ...................................................................... Ablauf eines Zugriffs ................................................................. Verbindung ................................................................................... SQL-Befehl ..................................................................................... OleDb .............................................................................................. 11 Inhalt Inhalt 378 380 9.2 Ein lokaler Webserver ................................................................................. 415 9.2.1 Eine erste Internetanwendung .............................................. 415 SQL-Befehle ..................................................................................................... 382 9.3 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 Auswahl mit SELECT .................................................................. Ändern mit UPDATE ................................................................... Löschen mit DELETE ................................................................... Einfügen mit INSERT .................................................................. Typische Fehler in SQL ............................................................... 383 387 388 388 388 Eine erste ASP.NET-Anwendung ............................................................ 418 9.3.1 Fehlerhafte Programmierung ................................................. 420 9.4 Formatierung von Internetseiten .......................................................... 421 9.5 Senden und Auswerten von Formulardaten .................................... 423 9.6 Weitere Formularelemente ..................................................................... 425 Ein Verwaltungsprogramm ...................................................................... 390 9.7 Ein Kalenderelement ................................................................................... 428 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 8.5.6 Initialisierung ............................................................................... Alle Datensätze sehen .............................................................. Datensatz einfügen ................................................................... Datensatz ändern ....................................................................... Datensatz löschen ...................................................................... Datensatz suchen ....................................................................... 390 391 394 396 399 401 9.8 ASP.NET und ADO.NET ............................................................................... 430 9.9 Datenbank im Internet ändern .............................................................. 433 10 Zeichnen mit GDI+ 439 Abfragen über mehrere Tabellen .......................................................... 403 8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 Datenbankmodell und Tabellen ............................................ Alle Personen ............................................................................... Anzahl der Kunden ..................................................................... Alle Kunden mit allen Projekten ............................................ Alle Personen mit allen Projektzeiten .................................. 403 405 405 405 406 10.1 Grundlagen von GDI+ ................................................................................. 439 10.2 Linie, Rechteck, Polygon und Ellipse zeichnen ................................ 439 8.6.6 8.6.7 8.6.8 8.6.9 Alle Personen mit Zeitsumme ................................................ Alle Personen mit allen Personenzeiten ............................. Alle Projekte mit allen Zeitsumme ....................................... JOIN oder WHERE ....................................................................... 407 408 409 409 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 Grundeinstellungen ................................................................... Linie ................................................................................................. Rechteck ......................................................................................... Polygon ........................................................................................... Ellipse .............................................................................................. Dicke und Farbe ändern, Zeichnung löschen .................... 440 441 442 443 443 444 Verbindung zu MySQL ................................................................................ 410 10.3 Text schreiben ................................................................................................ 445 8.7.1 410 10.4 Bilder darstellen ............................................................................................ 447 10.5 Dauerhaft zeichnen ..................................................................................... 449 10.6 Zeichnen einer Funktion ............................................................................ 451 11 Beispielprojekte 455 11.1 Spielprogramm Tetris ................................................................................. 455 11.1.1 11.1.2 455 456 8.3.6 8.3.7 8.4 8.5 8.6 8.7 9 9.1 12 Auswahlabfrage .......................................................................... Aktionsabfrage ............................................................................ .NET-Treiber .................................................................................. Internetanwendungen mit ASP.NET 413 Grundlagen von Internetanwendungen ............................................ 413 9.1.1 9.1.2 9.1.3 413 414 415 Statische Internetanwendungen .......................................... Dynamische Internetanwendungen .................................... Vorteile von ASP.NET ................................................................. Spielablauf .................................................................................... Programmbeschreibung .......................................................... 13 Inhalt 11.1.3 11.1.4 11.1.5 11.1.6 11.1.7 11.1.8 11.1.9 11.1.10 11.2 Steuerelemente ........................................................................... Initialisierung des Programms ............................................... Erzeugen eines neuen Panels ................................................. Der Zeitgeber ............................................................................... Panels löschen ............................................................................. Panels seitlich bewegen ........................................................... Panels nach unten bewegen ................................................... Pause ............................................................................................... Lernprogramm Vokabeln .......................................................................... 468 11.2.1 11.2.2 11.2.3 11.2.4 11.2.5 11.2.6 11.2.7 Benutzung des Programms ..................................................... Erweiterung des Programms .................................................. Initialisierung des Programms ............................................... Ein Test beginnt .......................................................................... Zwei Hilfsmethoden .................................................................. Die Antwort prüfen .................................................................... Das Benutzermenü .................................................................... 468 470 471 472 475 476 477 12 Windows Presentation Foundation 481 12.1 Layout ................................................................................................................ 482 12.2 Steuerelemente ............................................................................................. 485 12.3 Frame-Anwendung ...................................................................................... 488 12.4 Zweidimensionale Grafik .......................................................................... 491 12.5 Dreidimensionale Grafik ........................................................................... 494 12.6 Animation ........................................................................................................ 498 12.7 WPF und Windows Forms ......................................................................... 501 12.7.1 12.7.2 Windows Forms in WPF ............................................................ WPF in Windows Forms ............................................................ 502 503 A Installation und technische Hinweise ................................................. 507 B Lösungen der Übungsaufgaben ............................................................. 515 Index .................................................................................................................................... 14 457 458 460 461 462 466 467 468 535