VISUAL C# 2012

Werbung
walter DOBERENZ
thomas GEWINNUS
VISUAL C#
2012
KOCHBUCH
// 500 sofort einsatzbereite Lösungen
// Sprache, Techniken, OOP, GUI- und Webprogrammierung
// Entwickeln von Windows Store Apps
EXTRA: Kostenloses E-Book inkl.
670 Seiten Bonuskapitel
Doberenz/Gewinnus
Visual C# 2012
Kochbuch
Bleiben Sie auf dem Laufenden!
Der Hanser Computerbuch-Newsletter informiert
Sie regelmäßig über neue Bücher und Termine
aus den verschiedenen Bereichen der IT.
Profitieren Sie auch von Gewinnspielen und
exklusiven Leseproben. Gleich anmelden unter
www.hanser-fachbuch.de/newsletter
Walter Doberenz
Thomas Gewinnus
Visual C# 2012
Kochbuch
Die Autoren:
Professor Dr.-Ing. habil. Walter Doberenz, Wintersdorf
Dipl.-Ing. Thomas Gewinnus, Frankfurt/Oder
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit
keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen
infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige
Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder
Teilen davon – entsteht.
Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw.
frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen,
Waren­be­zeich­­nungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbiblio­
grafie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.
Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung des Buches,
oder Teilen daraus, sind vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung
des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren), auch nicht
für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2013 Carl Hanser Verlag München
http://www.hanser-fachbuch.de
Lektorat: Sieglinde Schärl
Herstellung: Irene Weilhart
Satz: Ingenieurbüro Gewinnus
Sprachlektorat: Walter Doberenz
Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München
Umschlagrealisation: Stephan Rönigk
Druck und Bindung: Kösel, Krugzell
Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr. 0748702
Printed in Germany
Print-ISBN: 978-3-446-43438-7
E-Book-ISBN: 978-3-446-43605-3
Inhaltsverzeichnis
Vorwort
1
Kleiner C#-Anfängerkurs
R1
R2
R3
R4
R5
R6
2
..........................................................................
....................................................
29
Das EVA-Prinzip anwenden ................................................
Ein Array definieren und initialisieren .......................................
Die Arraygröße zur Laufzeit ändern .........................................
Berechnungen in eine Methode auslagern ...................................
Konsolenprogramm nach Windows portieren ................................
Werte in einer ListBox anzeigen ............................................
29
33
36
38
42
46
Sprache
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
R17
R18
R19
R20
R21
R22
25
......................................................................
51
Anwendungen von Visual Basic nach C# portieren ...........................
String in Array kopieren und umgekehrt .....................................
Ein Byte-Array in einen String konvertieren .................................
Strukturvariablen in Arrays einsetzen ........................................
Eine einzelne Spalte aus einer Matrix kopieren ..............................
In einer ArrayList suchen und sortieren ......................................
In einer generischen Liste suchen und sortieren ..............................
Zufallszahlen erzeugen .....................................................
Iterationen verstehen (Quadratwurzel) .......................................
Iterationen verstehen (Goldener Schnitt) .....................................
Funktionen rekursiv aufrufen ...............................................
Zeichenketten mittels StringBuilder addieren ................................
Strings vergleichen .........................................................
Eine Stoppuhr programmieren ..............................................
Zeitangaben runden ........................................................
Zeitdifferenzen ermitteln ....................................................
51
58
60
61
64
66
68
69
71
74
75
76
80
83
85
87
6
Inhaltsverzeichnis
R23
R24
R25
R26
R27
R28
R29
R30
R31
R32
R33
R34
R35
R36
R37
R38
R39
R40
R41
R42
R43
R44
R45
R46
R47
R48
3
Datumsdifferenzen berechnen ...............................................
Das Alter in Jahren bestimmen ..............................................
Die Monatsdifferenz berechnen .............................................
Das Datum beweglicher Feiertage berechnen ................................
Ersten und letzten Wochentag des Monats ermitteln ..........................
Den Wochentag eines Datums ermitteln .....................................
Abschreibungen auf Monatsbasis berechnen .................................
Reisespesen berechnen .....................................................
Geldbeträge kaufmännisch runden ..........................................
Fehler bei mathematischen Operationen behandeln ..........................
Mit Potenzen und Wurzeln rechnen .........................................
Einen Delegate definieren und anwenden ....................................
Mit Delegates sortieren (Bubblesort) ........................................
Referenz-/Wertetypen als Parameter übergeben ..............................
LINQ im Schnelldurchgang erlernen ........................................
Strings mit LINQ abfragen und filtern .......................................
Duplikate aus einer Liste oder einem Array entfernen ........................
Arrays mit LINQ initialisieren ..............................................
Arrays per LINQ mit Zufallszahlen füllen ...................................
Einen String mit Wiederholmuster erzeugen ................................
Mit LINQ Zahlen und Strings sortieren ......................................
Mit LINQ Collections von Objekten sortieren ...............................
Ergebnisse von LINQ-Abfragen in ein Array kopieren .......................
Sortieren mit IComparable/IComparer .......................................
Mit async und await asynchron programmieren ..............................
Tipps & Tricks .............................................................
Zahlen definiert runden ..................................................
Auf das letzte Zeichen im String testen ...................................
Die letzten Zeichen eines Strings abschneiden ............................
Leerzeichen aus einem String entfernen ..................................
Die aktuelle Uhrzeit anzeigen ............................................
Die Uhrzeit von String- in DateTime-Datentyp umwandeln ...............
Kurze Alternative zur if-Anweisung ......................................
OOP/Komponenten
R49
R50
R51
88
91
92
94
96
97
99
102
105
106
110
111
113
116
119
122
123
126
129
130
132
133
136
136
140
143
143
143
143
143
144
144
144
..........................................................
145
Überladene versus überschriebene Methoden ................................
Aggregation und Vererbung gegenüberstellen ................................
Objekte serialisieren ........................................................
145
148
154
7
Inhaltsverzeichnis
R52
R53
R54
R55
R56
R57
R58
R59
R60
R61
R62
4
Ein wieder verwendbares Formular erstellen .................................
Von einem Formular erben ..................................................
Von vorhandenen Steuerelementen erben ....................................
Eine Komponente zur Farbauswahl entwickeln ..............................
Eine Digitalanzeige-Komponente programmieren ............................
OOP beim Kartenspiel erlernen .............................................
Eine Klasse zur Matrizenrechnung entwickeln ...............................
Interop-Typen in die Assembly einbetten ....................................
Das Observer-Pattern anwenden (Variante 1) ................................
Das Observer-Pattern anwenden (Variante 2) ................................
Einen Objektbaum in generischen Listen abspeichern .......................
Windows Forms-Anwendungen
R63
R64
R65
R66
R67
R68
R69
R70
R71
R72
R73
R74
R75
R76
R77
R78
R79
R80
R81
R82
R83
R84
R85
R86
R87
157
160
165
169
173
178
183
188
191
194
199
............................................
207
Das Startformular festlegen .................................................
Beim Programmstart eine Abfrage ausführen ................................
Das Schließen des Formulars verhindern ....................................
Mit mehreren Formularen arbeiten ..........................................
MDI-Applikation und Menüs erstellen ......................................
Formulare im Formular anzeigen ............................................
Zur Laufzeit ein Steuerelement erzeugen ....................................
Steuerelemente-Array per Code erzeugen ....................................
Auf ein Control-Array zugreifen ............................................
Mit der TextBox arbeiten ...................................................
In einer TextBox suchen ....................................................
Nur Zahleneingaben zulassen ...............................................
Die Schrifteigenschaften einer TextBox ändern ..............................
Dezimalkomma in Dezimalpunkt umwandeln ...............................
Tastatureingaben für mehrere TextBoxen filtern ..............................
RadioButtons und CheckBoxen einsetzen ...................................
Die ListBox kennen lernen ..................................................
Die ComboBox erkunden ...................................................
Objekte in ListBox/ComboBox anzeigen ....................................
Mit der CheckedListBox arbeiten ...........................................
Die Maus abfragen .........................................................
Das TableLayoutPanel einsetzen ............................................
Mit einem Kontextmenü arbeiten ...........................................
Einfache Datenbindung praktizieren .........................................
Anwendungseinstellungen an Controls binden ...............................
207
209
210
211
216
219
222
224
226
229
231
232
234
236
237
239
241
244
247
250
253
254
258
260
263
8
Inhaltsverzeichnis
R88
R89
R90
R91
R92
R93
R94
R95
R96
R97
R98
R99
R100
5
Mit Drag & Drop arbeiten ..................................................
Mit dem ErrorProvider arbeiten .............................................
Eingaben validieren ........................................................
Das NotifyIcon-Control in der Taskleiste einsetzen ..........................
Ein Array in einer ListView anzeigen ........................................
Eine ListView mit dem Inhalt eines DataSets füllen ..........................
In der ListView nach beliebigen Spalten sortieren ............................
Das Microsoft Chart-Control verwenden ....................................
WPF-Komponenten mit dem ElementHost anzeigen .........................
Die Einstellungen des User-Interface sichern ................................
Drag & Drop im Steuerelemente-Array realisieren ...........................
Programmierung einer mehrspaltigen ListBox ...............................
Die Tabulatorbreite verändern ...............................................
Windows Presentation Foundation
R101
R102
R103
R104
R105
R106
R107
R108
R109
R110
R111
R112
R113
R114
268
272
275
278
282
284
289
294
297
301
306
313
317
.........................................
319
WPF-Anwendung im Fullscreen-Mode starten ...............................
Fenster auf einem bestimmten Screen anzeigen ..............................
Das Hauptfenster festlegen und ändern ......................................
Einen Splash-Screen erzeugen und anzeigen .................................
Eine WPF-Browseranwendung erstellen .....................................
Größe und Titel des Browserfensters festlegen ............................
Größe der Browseranwendung anpassen ..................................
Ein-/Ausblenden der Navigationsschaltflächen ...........................
Navigation zwischen einzelnen Seiten (Pages) ............................
Verwendung von Cookies ................................................
Abfrage von QueryStrings ...............................................
Übergabe von Page-Instanzen per Konstruktor ............................
Eine Instanz der Seite erhalten ...........................................
Einen Ersatz für Window realisieren ......................................
WPF-Oberflächen zur Laufzeit erzeugen ....................................
Grafiken in WPF skaliert anzeigen ..........................................
Grafiken aus Dateien zur Laufzeit laden .....................................
Grafiken aus Ressourcen zur Laufzeit zuweisen .............................
Sonderzeichen im Content darstellen ........................................
Eigene Schriftarten in die Anwendung einbetten .............................
WPF-Controls trotz Layout frei positionieren ................................
Textformatierungen im Content realisieren ..................................
Irreguläre Window-Formen erzeugen ........................................
319
320
322
323
325
325
326
328
328
330
332
333
334
334
335
338
340
342
345
346
348
349
350
9
Inhaltsverzeichnis
R115
R116
R117
R118
R119
R120
R121
R122
R123
R124
R125
R126
R127
R128
R129
R130
6
Einfache Zeichnungen zur Laufzeit ausgeben ................................
Kommandozeilenparameter auswerten ......................................
Ein Video anzeigen und steuern .............................................
Schatteneffekt für Controls realisieren .......................................
Eine TextBox beim Fokuserhalt optisch markieren ...........................
Den TextBox-Inhalt beim Fokuserhalt markieren ............................
Den Pfad der aktuellen Anwendung bestimmen ..............................
Formulare per Reflection auswählen und anzeigen ...........................
Datenbindung für Anwendungseinstellungen ................................
Deutsches Datumsformat anzeigen ..........................................
Einen Timer in WPF nutzen .................................................
Das User-Interface am Task-Ende aktualisieren ..............................
Das User-Interface aus dem Task aktualisieren ...............................
Collections in Hintergrundthreads füllen .....................................
Einen Ribbon in meine Anwendung einbinden ...............................
Das WPF-Chart-Control verwenden .........................................
Silverlight
352
354
356
358
361
362
364
364
366
367
369
370
372
375
380
390
...................................................................
393
Den Fokus auf das Silverlight-Plugin setzen .................................
Zugriff auf die Zwischenablage realisieren ..................................
Drag & Drop-Unterstützung realisieren ......................................
Den Querystring der aktuellen Seite auswerten ..............................
Dokumente in Silverlight drucken ...........................................
Einen Webcam-Screenshot drucken .........................................
ASP.NET- und WCF-Dienste einbinden .....................................
Die WCF Data Services nutzen .............................................
Eine Desktop-Anwendung erzeugen .........................................
Assemblies nachladen ......................................................
Daten per ZIP-Datei nachladen ..............................................
Kommunikation zwischen Plugins realisieren ................................
Den Sender programmieren ..............................................
Den Empfänger programmieren ..........................................
ASP.NET-Testweb anpassen und testen ...................................
R143 Einen Timer in Silverlight nutzen ...........................................
R144 Weitere Dialogfenster öffnen ................................................
R145 Dateien auf dem Client speichern ...........................................
393
394
395
398
399
401
406
415
424
429
432
434
434
436
437
438
440
442
R131
R132
R133
R134
R135
R136
R137
R138
R139
R140
R141
R142
10
7
Inhaltsverzeichnis
Windows Store Apps
........................................................
445
R146 Den App-Aufbau verstehen und ändern ......................................
R147 Die Startseite festlegen .....................................................
Statische Änderung ......................................................
Dynamische Änderung ..................................................
R148 Prüfen, ob die App zum ersten Mal gestartet wurde ..........................
R149 App-Zustände vor dem Programmende sichern ..............................
R150 Anmeldedaten sicher speichern .............................................
R151 Zwischen App-Seiten navigieren ............................................
R152 Informationen zwischen Seiten austauschen .................................
R153 Auflösungsabhängige Bild-Ressourcen einbetten ............................
R154 Einer App ein anderes Theme zuweisen .....................................
Anpassung per XAML-Code .............................................
Theme in Visual Studio anpassen ........................................
Ein Theme zur Laufzeit wechseln ........................................
R155 Die Windows-Kontakt-Liste verwenden .....................................
R156 Eine E-Mail versenden .....................................................
R157 Apps in die Windows 8-Suche integrieren ...................................
R158 Das Einstellungen-Panel verwenden .........................................
R159 Einstellungen über mehrere Geräte synchronisieren ..........................
R160 Auf Größen- und Formatänderungen reagieren ..............................
R161 Die Modern UI-Live Tiles ansteuern ........................................
R162 Eine Dateiverknüpfung erstellen ............................................
R163 Die Zwischenablage verwenden .............................................
R164 Daten anderen Apps zur Verfügung stellen ...................................
R165 Daten aus anderen Apps konsumieren .......................................
R166 FilePicker für die Dateiauswahl verwenden ..................................
R167 Von der MessageBox zum MessageDialog ..................................
R168 Aus Threads auf die Oberfläche zugreifen ...................................
R169 Einen Style zur Laufzeit zuweisen ...........................................
R170 Eine App per Code beenden .................................................
R171 Die Positionskoordinaten für Google-Maps nutzen ...........................
R172 Eine Pause realisieren ......................................................
R173 Global auf Tasteneingaben reagieren ........................................
R174 Einen Timer programmieren ................................................
R175 Die aktuelle Bildschirmauflösung ermitteln ..................................
R176 Auf ein Touch-Eingabegerät testen ..........................................
R177 Prüfen, ob eine Tastatur angeschlossen ist ...................................
445
449
449
450
453
453
461
465
470
470
473
473
474
475
477
480
483
491
500
500
505
511
515
523
527
537
542
546
546
547
547
552
553
556
558
559
561
11
Inhaltsverzeichnis
R178
R179
R180
R181
R182
R183
R184
R185
R186
8
Die virtuelle Tastatur richtig einsetzen .......................................
Prüfen, ob eine Internetverbindung verfügbar ist .............................
Informationen über das aktuelle Package abrufen ............................
Das Verzeichnis der App bestimmen ........................................
Soundausgaben im Background realisieren ..................................
Audiodaten aufnehmen und wiedergeben ....................................
Bilder/Videos mit dem WinRT-Dialog aufnehmen ...........................
Bilder/Videos mit eigenem Userinterface aufnehmen .........................
Windows Store Apps richtig debuggen ......................................
Verwendung einer Protokolldatei .........................................
Debuggen mit DebugView ...............................................
Debuggen von Contract-aktivierten Apps .................................
R187 Apps auf einem anderen PC installieren .....................................
561
563
565
568
569
575
579
583
588
589
592
592
593
Schnittstellen
...............................................................
595
Eine einfache E-Mail versenden .............................................
E-Mails mit dem integrierten Mail-Client versenden .........................
Die Zwischenablage verwenden .............................................
Die WIA-Library kennenlernen .............................................
Installation/Vorbereitung .................................................
Einstieg mit kleiner Beispielanwendung ..................................
Reagieren auf das Verbinden/Trennen von Geräten ........................
Ermitteln der verfügbaren Geräte .........................................
Anzeige der Geräteeigenschaften .........................................
Ein Bild einlesen ........................................................
Bild(er) drucken per Assistent ............................................
Den Scanner-Assistent aufrufen ..........................................
Grafikbearbeitung mit WIA ..............................................
Auf eine Webcam zugreifen .................................................
Auf den Scanner zugreifen ..................................................
OpenOffice.org Writer per OLE steuern .....................................
VB-Library "OOWLib" ..................................................
C#-Anwendungsprogramm ..............................................
Mit OLE-Automation auf MS Access zugreifen ..............................
Ein Managed Add-In programmieren und einbinden .........................
Entwurf des Add-Ins .....................................................
Erstellen der Access-Anwendung ........................................
Zugriff auf die serielle Schnittstelle .........................................
595
596
598
599
600
601
603
603
604
605
608
609
610
611
614
619
619
623
626
631
632
637
639
R188
R189
R190
R191
R192
R193
R194
R195
R196
R197
12
Inhaltsverzeichnis
R198
R199
R200
R201
R202
9
Sound per MCI aufnehmen .................................................
Mikrofonpegel anzeigen ....................................................
Pegeldiagramm aufzeichnen ................................................
Sound-und Video-Dateien per MCI abspielen ................................
Eine C-DLL in C# einbinden ................................................
System
R203
R204
R205
R206
R207
R208
R209
R210
R211
R212
R213
R214
R215
R216
R217
R218
R219
R220
R221
643
647
648
652
661
.......................................................................
669
Nutzer und Gruppen des aktuellen Systems ermitteln ........................
Testen, ob Nutzer in einer Gruppe enthalten ist ..............................
Testen, ob der Nutzer ein Administrator ist ..................................
Die IP-Adressen des Computers bestimmen .................................
Die IP-Adresse über den Hostnamen bestimmen .............................
Diverse Systeminformationen ermitteln .....................................
Betriebssystem (Name, Version, Bootmode) ..............................
Schriftarten/-Informationen ..............................................
Bildschirme .............................................................
Netzwerk (User-Name, PC-Name ...) .....................................
Environment Variablen auslesen .........................................
Hardware-Informationen .................................................
Energiestatus ............................................................
Anwendung (Pfad, Name, Assembly) ....................................
Soundkarte(n) ...........................................................
CLR-Version ............................................................
Alles über den Bildschirm erfahren ..........................................
Die Registrierdatenbank verwenden .........................................
Eine verknüpfte Anwendung öffnen .........................................
Eine Dateiverknüpfung erzeugen ............................................
Den Computer herunterfahren oder neu starten ..............................
Variante 1 (ExitWindowsEx) .............................................
Variante 2 (Shutdown.exe) ...............................................
Den "Herunterfahren"-Dialog anzeigen ......................................
Das System-Shutdown-Ereignis auswerten ..................................
Windows in den Standby-Modus versetzen ..................................
Systemereignisse auswerten ................................................
Windows Botschaften verarbeiten ...........................................
Alle geöffneten Windows Fenster ermitteln ..................................
Die Taskbar Notification Area (TNA) verwenden ............................
Neue Programmgruppen erzeugen ..........................................
669
671
673
674
675
676
677
678
679
680
681
682
683
683
684
685
686
687
690
691
693
693
695
697
698
698
699
700
702
705
707
13
Inhaltsverzeichnis
R222
R223
R224
R225
R226
R227
R228
R229
R230
R231
R232
R233
R234
R235
R236
R237
R238
R239
R240
R241
Verknüpfungen auf dem Desktop erzeugen ..................................
Den Bildschirmschoner aktivieren/deaktivieren ..............................
Drag & Drop mit dem Explorer realisieren ..................................
System-Icons verwenden ...................................................
Die Desktop-Icons ein-/ausblenden ..........................................
Die Taskbar ausblenden .....................................................
Den Papierkorb leeren ......................................................
Den Windows Suchassistenten verwenden ...................................
Systemtöne und WAV-Dateien wiedergeben .................................
Das Windows-Systemprotokoll nutzen ......................................
Das Windows-Systemprotokoll überwachen .................................
Die Zwischenablage überwachen und anzeigen ..............................
Das Datei-Eigenschaftenfenster anzeigen ....................................
Prüfen, ob Visual Styles aktiviert sind .......................................
Schriftarten dynamisch einbinden und verwenden ...........................
Eine Soundkarte erkennen ..................................................
Prozess- und Thread-Informationen gewinnen ...............................
Ein externes Programm starten ..............................................
Eine externe Anwendung starten und überwachen ............................
Erhöhte Berechtigungen erhalten ............................................
Anwendungsmanifest ändern ............................................
RunAs verwenden .......................................................
UAC-Icon anzeigen .....................................................
10 Sonstiges
R242
R243
R244
R245
R246
R247
R248
R249
R250
R251
R252
R253
R254
709
711
712
713
714
715
716
717
719
721
723
724
727
729
730
732
733
738
740
742
743
745
748
....................................................................
749
Logische Fehler mittels Debugger aufspüren .................................
Eigene Fehlerklassen definieren .............................................
Die MessageBox-Klasse verwenden .........................................
Nur eine Anwendungsinstanz zulassen ......................................
Die Anwendungsparameter auswerten .......................................
Tastaturbefehle senden ......................................................
Mittels Reflection Typinformationen sammeln ...............................
Ressourcen per Reflection auslesen .........................................
Methoden per Reflection oder dynamisch aufrufen ...........................
Mehrere Methoden parallel verarbeiten ......................................
Arrays parallel verarbeiten ..................................................
Client/Server-Anwendung mit zwei Projekten ...............................
Eine Windows Form-Anwendung lokalisieren ...............................
749
756
758
760
762
764
768
770
773
775
779
783
787
14
Inhaltsverzeichnis
R255
R256
R257
R258
R259
R260
R261
R262
R263
R264
R265
R266
R267
R268
R269
R270
Eine Assembly dynamisch einbinden ........................................
ILSpy zum "Schnüffeln" verwenden ........................................
Eine GUID erzeugen .......................................................
Bytes in Megabyte umrechnen ..............................................
Hex-Dezimal-Bytes-Konverter ..............................................
Einen langen Hex-String in Bytes umwandeln ...............................
Einen String verschlüsseln ..................................................
Die Verwendung von DoEvents verstehen ...................................
Eine Pause realisieren ......................................................
Numerische Integration ausführen ...........................................
Hilfedateien programmieren ................................................
Hilfedateien in die Visual C#-Anwendung einbinden .........................
Eine alternative Hilfe-IDE verwenden ......................................
Installationsdateien erzeugen ................................................
Eine farbige Konsolenanwendung realisieren ................................
Lesbare Menüleisten in Visual Studio 2012 anzeigen .........................
791
795
797
798
799
803
805
807
810
812
816
820
824
825
836
838
...........................................................................
839
A
B
Glossar ....................................................................
Wichtige Datei-Extensions ..................................................
839
844
Index
.............................................................................
845
Anhang
Bonuskapitel im E-Book
Zweites Vorwort
.................................................................
11 Kleiner OOP-Crashkurs
R271
R272
R273
R274
R275
R276
R277
873
.....................................................
875
Klassen und Objekte verstehen ..............................................
Einen eigenen Konstruktor implementieren ..................................
Eigenschaften kapseln ......................................................
Vererbung und Polymorphie anwenden ......................................
Ereignisse programmieren ..................................................
Ein Entwurfsmuster umsetzen ...............................................
Das Microsoft Event Pattern implementieren ................................
875
880
881
885
892
895
905
12 Grafikprogrammierung
.....................................................
909
R278 Ein Graphics-Objekt erzeugen ..............................................
Verwendung des Paint-Events ............................................
Überschreiben der OnPaint-Methode .....................................
Graphics-Objekt mit CreateGraphics erzeugen ............................
Verwendung des Graphics-Objekts einer PictureBox ......................
R279 Verbundene Linien und Pfeile zeichnen .....................................
R280 Eine gemusterte Linie zeichnen .............................................
R281 Rechtecke und Ellipsen zeichnen ............................................
R282 Rechtecke mit runden Ecken zeichnen .......................................
R283 Transparente Farben verwenden .............................................
R284 Ein Tortendiagramm zeichnen ..............................................
R285 Die Grafikdialoge richtig einsetzen ..........................................
R286 Ein Control-Array mit Grafiken ausstatten ...................................
R287 Einen grafischen Würfel programmieren ....................................
909
909
910
911
912
912
914
915
916
918
919
920
922
925
– Diese Rezepte finden Sie nur im E-Book –
16
Bonuskapitel im E-Book
R288
R289
R290
R291
R292
R293
R294
R295
R296
R297
R298
R299
R300
R301
R302
R303
R304
R305
R306
R307
R308
R309
R310
R311
R312
R313
R314
R315
R316
R317
R318
R319
R320
Den Abstand zwischen zwei Punkten berechnen .............................
Ein Balkendiagramm zeichnen ..............................................
Farbwerte mischen .........................................................
Eine Verkehrsampel programmieren .........................................
Eine 2D-Vektorgrafik manipulieren .........................................
Geometrische Transformationen durchführen ................................
Eine Grafik scrollen ........................................................
Eine Bitmap erzeugen und als Datei speichern ...............................
Eine Metafilegrafik erzeugen und speichern .................................
Einen Fenster-Screenshot erzeugen ..........................................
Einen Desktop-Screenshot realisieren .......................................
Auf dem Windows-Desktop zeichnen .......................................
Eine Grafik aus den Programmressourcen laden .............................
Zwei Farbwerte miteinander vergleichen ....................................
Einen Farbverlauf erzeugen .................................................
Einen transparenten Stift erzeugen ..........................................
Texte gedreht ausgeben .....................................................
Text mit Schatten ausgeben .................................................
Mehrzeiligen Text ausgeben ................................................
Text mit Tabulatoren ausgeben ..............................................
Die installierten Schriftarten ermitteln .......................................
Die JPEG-Kompression festlegen ...........................................
Eine Grafik maskieren ......................................................
Die Transparenz einer Grafik steuern ........................................
Einfache GIF-Animationen wiedergeben ....................................
Auf einzelne GIF-Frames zugreifen .........................................
Aus animierten Gifs ein Bitmap-Strip erzeugen ..............................
Flackernde Grafikausgaben vermeiden ......................................
Einfache Grafikanimationen realisieren ......................................
RGB-Grafiken manipulieren ................................................
Einen Markierungsrahmen erzeugen ........................................
Zeichenoperationen mit der Maus realisieren ................................
Ein Testbild programmieren ................................................
13 Drucker/Drucken
............................................................
928
930
934
938
941
946
948
949
950
952
954
956
958
961
962
963
964
966
967
968
969
971
972
974
976
978
980
981
983
985
992
994
997
1001
R321 Mit C# drucken ............................................................ 1001
R322 Den Windows Standard-Drucker ermitteln ................................... 1002
R323 Den Windows Standard-Drucker ändern ..................................... 1003
– Diese Rezepte finden Sie nur im E-Book –
17
Bonuskapitel im E-Book
R324
R325
R326
R327
R328
R329
R330
R331
R332
R333
R334
R335
R336
R337
R338
R339
R340
R341
R342
R343
R344
R345
R346
R347
R348
R349
R350
Die verfügbaren Drucker ermitteln ..........................................
Einen Drucker auswählen ...................................................
Papierformate und Seitenabmessungen bestimmen ...........................
Den physikalischen Druckbereich ermitteln ..................................
Die aktuelle Seitenausrichtung ermitteln .....................................
Testen ob es sich um einen Farbdrucker handelt ..............................
Die physikalische Druckauflösung abfragen .................................
Prüfen, ob beidseitiger Druck möglich ist ....................................
Einen Informationsgerätekontext erzeugen ..................................
Drucken mit Millimeter-Angaben ...........................................
Die Seitenränder für den Druck festlegen ....................................
Einen Druckjobnamen vergeben ............................................
Die Anzahl der Kopien festlegen ............................................
Beidseitigen Druck realisieren ..............................................
Bestimmte Seitenbereiche drucken ..........................................
Den PageSetup-Dialog verwenden ..........................................
Das Windows-Drucker-Fenster anzeigen ....................................
Eine Textdatei drucken .....................................................
Den Inhalt einer TextBox drucken ...........................................
Den Drucker umfassend konfigurieren ......................................
Mit Microsoft Word per OLE drucken .......................................
Ein Microsoft Word-Formular füllen und drucken ............................
Mit Microsoft Access drucken ..............................................
Die Drucker-Konfiguration anzeigen ........................................
Diverse Druckereigenschaften bestimmen ...................................
Dokumente mit dem Internet Explorer drucken ..............................
Einen Drucker anhalten .....................................................
14 Dateien/Verzeichnisse
R351
R352
R353
R354
R355
R356
R357
R358
R359
1004
1005
1006
1008
1009
1009
1010
1011
1011
1013
1014
1016
1017
1017
1018
1023
1026
1027
1029
1031
1041
1044
1048
1049
1051
1052
1054
......................................................
1057
Mit den Dateidialogen auf eine Textdatei zugreifen ..........................
Alle Unterverzeichnisse auflisten ...........................................
Alle Dateien auflisten .......................................................
Die GetFileSystemInfos-Methode verwenden ...............................
Die Path-Klasse kennen lernen ..............................................
Verzeichnis- und Datei-Informationen gewinnen .............................
Änderungen im Dateisystem überwachen ....................................
Dateien rekursiv suchen ....................................................
Eine sequenzielle Datei lesen und schreiben .................................
1057
1061
1062
1063
1065
1066
1070
1073
1075
– Diese Rezepte finden Sie nur im E-Book –
18
Bonuskapitel im E-Book
R360
R361
R362
R363
R364
R365
R366
R367
R368
R369
Serialisierte Objekte in einer Datei ablegen ..................................
Den Inhalt einer ListView als Datei abspeichern .............................
Den Verzeichnisinhalt in einer ListView anzeigen ............................
Einen Verzeichnisbaum in eine TreeView einlesen ...........................
Eine Datei verschlüsseln ....................................................
Eine Datei komprimieren ...................................................
Die vorhandenen Laufwerke feststellen ......................................
Das Einlesen einer Datei mit ProgressBar anzeigen ..........................
Echte ZIP-Dateien erstellen .................................................
PDFs erstellen/exportieren ..................................................
iTextSharp ..............................................................
PDFsharp ...............................................................
R370 Eine CSV-Datei erstellen ...................................................
R371 Eine CSV-Datei mit LINQ lesen und auswerten ..............................
R372 Einen korrekten Dateinamen erzeugen ......................................
1078
1082
1087
1090
1092
1095
1097
1098
1100
1102
1103
1104
1106
1109
1112
15 XML
..........................................................................
1113
R373
R374
R375
R376
R377
R378
R379
R380
R381
R382
R383
R384
R385
R386
R387
R388
R389
R390
Ein DataSet in einen XML-String konvertieren ..............................
Ein DataSet in einer XML-Datei speichern ..................................
In Dokumenten mit dem XPathNavigator navigieren .........................
In Dokumenten mit XElement/XDocument navigieren .......................
In Dokumenten mit dem XPathNavigator suchen ............................
Hierarchische Daten in einer TreeView darstellen ............................
XML-Daten mit dem XmlReader lesen ......................................
XML-Daten mit LINQ to XML einlesen/filtern ..............................
XML-Daten mit dem XmlWriter erzeugen ...................................
XML-Dokumente mit LINQ to XML erzeugen ..............................
Verzeichnisstruktur als XML-Dokument sichern .............................
Binäre Daten in einem XML-Dokument speichern ...........................
Objektstrukturen im XML-Format sichern ...................................
XML-Dokumente mit XSLT transformieren .................................
XML-Dokumente mit LINQ transformieren .................................
XML-Daten mit XmlDataDocument bearbeiten .............................
XML-Daten in SQL Server-Tabellen speichern ..............................
XML-Dokumente in Webanwendungen anzeigen ............................
1113
1117
1120
1124
1128
1131
1134
1137
1139
1141
1143
1145
1148
1153
1155
1156
1159
1160
– Diese Rezepte finden Sie nur im E-Book –
Bonuskapitel im E-Book
16 ADO.NET
R391
R392
R393
R394
R395
R396
R397
R398
R399
R400
R401
R402
R403
R404
R405
R406
R407
R408
R409
R410
R411
R412
R413
R414
R415
R416
R417
R418
R419
R420
R421
R422
R423
R424
R425
R426
19
.....................................................................
1165
Auf eine Access-Datenbank zugreifen .......................................
Auf den SQL Server zugreifen ..............................................
ConnectionString in Konfigurationsdatei ablegen ............................
Den DataReader kennen lernen .............................................
Minimaler DB-Client für Lese- und Schreibzugriff ...........................
Schemainformationen verwenden ...........................................
Query Notifications verwenden .............................................
Mit einer Datenquelle arbeiten ..............................................
Eine Aktionsabfrage ausführen ..............................................
Daten direkt hinzufügen oder löschen .......................................
Gespeicherte Prozeduren aufrufen ...........................................
Eine Access-Auswahlabfrage aufrufen ......................................
Parametrierte Abfragen unter MS Access ausführen ..........................
Parametrierte Abfragen für SQL Server ausführen ...........................
Datumswerte in SQL-Anweisungen einbauen ................................
Die Datenbank manuell aktualisieren .......................................
Die Datenbank mit CommandBuilder aktualisieren ..........................
Mit Stapel-Abfragen arbeiten ...............................................
RowUpdating-/RowUpdated-Ereignisse verwenden ..........................
MARS kennen lernen .......................................................
Auf Zeilen und Spalten der DataTable zugreifen .............................
Eine ListBox an eine DataView binden ......................................
Das DataGridView mit ComboBoxen ausrüsten .............................
Auf eine einzelne Zeile im DataGridView zugreifen .........................
DataTable erzeugen und in Binärdatei speichern .............................
Eine DataTable in einer XML-Datei abspeichern .............................
Die RemotingFormat-Property des DataSets nutzen ..........................
Master-Detail-Beziehungen im DataGrid anzeigen ...........................
Im DataView sortieren und filtern ...........................................
Im DataView nach Datensätzen suchen ......................................
Zwischen DataTable und DataReader umwandeln ...........................
Steuerelemente manuell an ein DataSet binden ..............................
Datensätze im Detail-Formular editieren .....................................
Tabellen mittels ComboBox verknüpfen ....................................
Spalten und Zeilen im DataGridView formatieren ...........................
DataReader in ListView anzeigen ...........................................
1165
1168
1171
1174
1175
1177
1180
1185
1190
1193
1196
1199
1201
1203
1204
1206
1211
1212
1214
1217
1221
1223
1225
1228
1231
1235
1236
1239
1241
1243
1245
1248
1253
1259
1263
1265
– Diese Rezepte finden Sie nur im E-Book –
20
Bonuskapitel im E-Book
R427
R428
R429
R430
R431
Bilder aus der Datenbank anzeigen ..........................................
Ein ungebundenes DataSet erzeugen ........................................
Ein typisiertes DataSet im Designer erzeugen ................................
Ein DataSet in ein typisiertes DataSet füllen .................................
Eine LINQ to SQL-Abfrage realisieren ......................................
17 ASP.NET/Webdienste
R432
R433
R434
R435
R436
R437
R438
R439
R440
R441
R442
R443
R444
R445
R446
R447
R448
R449
R450
R451
R452
R453
R454
R455
R456
R457
R458
R459
R460
1269
1271
1274
1277
1280
.......................................................
1285
Eine einfache Website programmieren .......................................
Tabellen mit der Table-Komponente erstellen ................................
Daten zwischen Web Forms austauschen ....................................
Informationen über den Browser ermitteln ...................................
Die Bildschirmauflösung des Clients ermitteln ...............................
Das Browser-Fenster maximieren ...........................................
Cookies in ASP.NET-Anwendungen verwenden .............................
HTML-Ausgaben an den Client senden .....................................
Bilder/Dateien an den Client senden .........................................
Die IP-Adresse des Clients abfragen ........................................
Die Anzahl der Seitenaufrufe eines Users ermitteln ..........................
Auf den Fehlercode 404 reagieren ...........................................
Variante 1: Alternative Fehlerseite einblenden ............................
Variante 2: Zentrale Fehlerbehandlung ...................................
Die Validierung temporär deaktivieren ......................................
Den Eingabefokus bei Validierung setzen ....................................
Eine clientseitige Validierung realisieren ....................................
Die Zellen in einem GridView formatieren ..................................
Ein GridView mit Bildlaufleisten realisieren .................................
Einen Mouseover-Effekte im GridView realisieren ...........................
Auf fehlende Daten im GridView reagieren ..................................
Daten einfach ins MS Excel-Format exportieren .............................
Berechnungen in GridView-Zeilen realisieren ...............................
Spaltensummen im GridView berechnen ....................................
Währungswerte im GridView korrekt anzeigen ..............................
Eine Validierung im GridView realisieren ...................................
Mit einem Popup-Fenster Detaildaten anzeigen ..............................
Sicherheitsabfrage vor dem Löschen realisieren ..............................
E-Mail-Versand in ASP.NET realisieren .....................................
Verzeichnisbäume mit der TreeView anzeigen ...............................
Datenaustausch zwischen ClientScript und Server ...........................
1285
1291
1298
1301
1303
1305
1306
1308
1310
1311
1311
1313
1313
1314
1315
1316
1316
1317
1319
1320
1321
1322
1325
1326
1328
1329
1331
1335
1336
1338
1341
– Diese Rezepte finden Sie nur im E-Book –
Bonuskapitel im E-Book
R461
R462
R463
R464
R465
R466
R467
R468
R469
R470
R471
R472
R473
R474
R475
R476
R477
R478
R479
R480
R481
R482
R483
R484
R485
R486
R487
R488
Dateien auf den Server uploaden ............................................
Ein ASP.NET-Menü dynamisch erzeugen ....................................
Die Browser-Kopfzeile zur Laufzeit ändern .................................
Einen Zeilenumbruch im Label-Control realisieren ..........................
HTML-Zeichenfolgen im Browser anzeigen .................................
Die Browser-Scrollposition wiederherstellen ................................
Dateien eines Unterverzeichnisses auflisten ..................................
MouseOver-Effekte für Controls realisieren .................................
Server Controls zur Laufzeit erzeugen .......................................
Doppelklicks auf Schaltflächen verhindern ..................................
Das Browserfenster per Client-Skript schließen ..............................
Ein einfaches ASP.NET User Control programmieren ........................
Grafikausgaben per User Control realisieren .................................
Die Upload-Begrenzung ändern .............................................
Eine Webseite per JavaScript drucken .......................................
Ein Projekt auf den IIS exportieren ..........................................
Ärger mit den Cookies vermeiden ...........................................
Einen XML-Webdienst programmieren .....................................
Einen Webdienst-Client erstellen ............................................
Datenbankzugriffe mit Webdiensten realisieren ..............................
Webdienst entwerfen ....................................................
Web-Client (Windows Forms) ...........................................
Web-Client (Web Forms) ................................................
Einen Webverweis aktualisieren .............................................
Authentifikation für Webdienste nutzen .....................................
Caching in Webdiensten realisieren .........................................
WebMethodAttribute.CacheDuration .....................................
Verwendung des Cache-API .............................................
Den Microsoft IIS nachträglich installieren ..................................
Nachinstallieren IIS 7 bzw. 7.5 (Windows 7) ..............................
Nachinstallieren IIS8 (Windows 8) .......................................
Die AJAX-Controls verwenden .............................................
Datenbindung mittels EntityDataSource realisieren ..........................
Den QueryExtender zum Filtern verwenden .................................
Tipps & Tricks .............................................................
Ärger mit Leerzeichen in URLs vermeiden ...............................
Testen, ob der Nutzer angemeldet ist .....................................
Den Namen des aktuellen Nutzers ermitteln ..............................
– Diese Rezepte finden Sie nur im E-Book –
21
1343
1344
1346
1346
1347
1348
1349
1351
1352
1354
1356
1357
1360
1364
1364
1365
1367
1368
1373
1377
1378
1384
1388
1393
1394
1395
1395
1397
1398
1398
1399
1400
1402
1408
1412
1412
1413
1413
22
Bonuskapitel im E-Book
Eine zufällige Datei zur Anzeige auswählen .............................. 1413
Einen Datei speichern unter-Dialog anzeigen lassen ....................... 1414
Anwendungseinstellungen in der Web.config sichern ..................... 1415
18 Reporting Services
R489
R490
R491
R492
R493
..........................................................
1417
Einen einfachen Bericht entwerfen ..........................................
Einen Bericht ohne Assistentenhilfe erstellen ................................
Im Bericht sortieren ........................................................
Im Bericht filtern ...........................................................
Weitere Tipps & Tricks .....................................................
Trennlinien in Tabellen realisieren ........................................
Währungsformatierung ..................................................
Datumsformatierung .....................................................
Wechselnde Zeilenfarben zuweisen ......................................
Anzeige von True und False in Boolean-Feldern vermeiden ...............
Anzeige von Nullwerten unterdrücken ....................................
Abstand zwischen zwei Tabellenspalten vergrößern .......................
Die lästigen Sekunden beseitigen .........................................
Nachkommastellen festlegen .............................................
Werte berechnen und formatieren ........................................
Weitere Informationen zu den Microsoft Reporting Services ..............
1417
1422
1425
1429
1432
1432
1433
1433
1433
1433
1434
1434
1434
1434
1434
1434
19 Komplexbeispiele
...........................................................
1435
R494 Kleines Textverarbeitungsprogramm ........................................
MDI-Rahmenfenster .....................................................
MDI-Kindfenster ........................................................
Menüs zusammenführen .................................................
PopUp-Menü hinzufügen ................................................
Quellcode für MDI-Hauptfenster .........................................
Quellcode für MDI-Kindfenster ..........................................
Programmtest ...........................................................
Dokumente drucken .....................................................
Bemerkungen zur RichTextBox ..........................................
R495 Buchungssystem mit Random Access Datei .................................
Klassenübersicht ........................................................
Entwurf der Bedienoberfläche ...........................................
Entwicklung des Geschäftsmodells ......................................
1435
1436
1436
1438
1440
1441
1443
1447
1447
1452
1452
1452
1453
1453
– Diese Rezepte finden Sie nur im E-Book –
Bonuskapitel im E-Book
Programmieren der Bedienoberfläche ....................................
Programmtest ...........................................................
Ein einfacher FTP-Client ...................................................
Bedienoberfläche ........................................................
Auflisten des FTP-Verzeichnisses ........................................
Herunterladen einer Datei per FTP .......................................
Heraufladen einer Datei per FTP .........................................
Löschen einer Datei im FTP-Verzeichnis .................................
Bedienfunktionen .......................................................
Programmtest ...........................................................
Lösen von linearen Gleichungssystemen ....................................
Ein wenig Theorie .......................................................
Komponente CTBMatrix ................................................
Benutzeroberfläche ......................................................
Programmtest ...........................................................
Rechner für komplexe Zahlen ...............................................
Was sind komplexe Zahlen? .............................................
Programmierung der Klasse CComplexN .................................
Bedienoberfläche für Testprogramm ......................................
Quellcode für Testprogramm .............................................
Programmtest ...........................................................
Formel-Rechner mit dem CodeDOM ........................................
Basisversion des Rechners ...............................................
Assembly auf Festplatte speichern .......................................
Berechnungsergebnisse als Diagramm darstellen ..........................
Einen mehrschichtigen Entwurf praktizieren .................................
Die Datenstruktur .......................................................
Die Ereignisdefinition ...................................................
Die Ereignislogik ........................................................
Das User-Interface .......................................................
Die Datenpersistenz .....................................................
Die Verwaltung des Pattern ..............................................
Test und Diskussion .....................................................
Ein zweiter Observer ....................................................
Zusammenfassung .......................................................
1462
1464
1466
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1477
1480
1482
1482
1484
1486
1487
1489
1491
1492
1497
1500
1505
1505
1507
1509
1511
1514
1515
1517
1519
1519
.............................................................................
1521
R496
R497
R498
R499
R500
Index
23
– Diese Rezepte finden Sie nur im E-Book –
Vorwort
Vorwort
Liebe Leserin, lieber Leser,
hat ein "Kochbuch" im Internet-Zeitalter überhaupt noch eine Chance, wo man doch über Suchmaschinen auf (fast) jede Frage dutzende von Lösungen gratis frei Haus erhält?
Die Antwort ist heute, mehr denn je, ein eindeutiges Ja. Gerade in der ausufernden Flut von Lösungen, die über das Internet abrufbar sind, liegt ein gravierendes Problem: Es wird immer schwieriger, die Spreu vom Weizen zu trennen.
Vielleicht halten Sie gerade deshalb die fünfte Auflage unseres erstmalig 2003 erschienenen Visual
C#-Kochbuchs in den Händen. Gegenüber dem Vorgängertitel zur Version 2010 wurde es komplett
überarbeitet, von verstaubten Inhalten befreit und um zahlreiche neue Rezepte ergänzt, die sich
zum großen Teil auf die Neuerungen der Version 2012 (WinRT-Programmierung) beziehen.
Eingeflossen sind weiterhin die kritischen Hinweise unserer Leser zu unseren bisher veröffentlichten C#-Büchern, die Erfahrungen von Lehrgängen und Workshops und, last but not least, die
gesammelten Erkenntnisse unserer eigenen Programmiertätigkeit.
HINWEIS: Simple Rezepte, wie "Eine Variable deklarieren" etc. werden Sie hier nicht finden,
denn derartig elementare Beispiele sind Gegenstand einführender Literatur. Hier verweisen wir Sie auf unser im gleichen Verlag erschienenes Buch "Visual C# 2012 –
Grundlagen und Profiwissen".
Bis auf wenige Ausnahmen sind alle Rezepte lauffähige Programme mit eigener Bedienoberfläche,
die sofortiges Ausprobieren und eigene Experimente mit "Aha-Effekt" ermöglichen, wobei sich der
inhaltliche Bogen vom einfachen Tipp & Trick für den Einsteiger bis hin zur komplexen ProfiApplikation spannt.
Wenn es um Rezepte geht, bei denen die Sprache C# und nicht die Programmoberfläche im Vordergrund steht, verwenden wir als Testumgebung vorrangig eine Windows Forms-Anwendung, bei
neueren Rezepten aber auch eine WPF-Anwendung.
26
Vorwort
Zum Buch-Inhalt
Wie immer haben wir uns auch in diesem Buch bemüht, nur qualitativ hochwertige Lernbeispiele
und Problemlösungen zu bringen, ohne dabei das zu wiederholen, was Ihnen die zu Visual C# 2012
bzw. Visual Studio 2012 allgemein verfügbaren Quellen ohnehin schon bieten.
Die mehr als 500 Rezepte des Kochbuchs sind in 19 Themengruppen übersichtlich angeordnet und
mit treffsicheren Titeln ausgestattet. Der Index sollte ein Übriges dazu beitragen, schnell an die gewünschten Informationen zu kommen.
■ Kapitel 1 ist speziell für den Programmier-Einsteiger gedacht. Es enthält einen kleinen Crashkurs, in welchem in mehreren sorgfältig aufeinander abgestimmten Rezepten wichtige Grundlagen der Sprache C# allgemeinverständlich erläutert werden.
■ Kapitel 2 widmet sich speziellen Features der Sprache C#, wie z.B. Stringverarbeitung, Parameterübergabe, Delegates und LINQ sowie deren Anwendungen bei verschiedensten Problemstellungen (mathematische Berechnungen, Datum/Zeit, Sortieren, Suchen ...).
■ Kapitel 3 enthält verschiedene Rezepte zu den Grundlagen der objektorientierten Programmierung und zur Komponentenentwicklung.
■ Kapitel 4 enthält Rezepte zur optimalen Programmierung von Windows Forms Oberflächen
und befasst sich mit den Besonderheiten der wichtigsten Steuerelemente.
■ Kapitel 5 bezieht sich auf Rezepte zur WPF-Technologie, dem langfristigen Nachfolger der
Windows Forms.
■ Kapitel 6 widmet sich den Silverlight-Anwendungen.
■ Kapitel 7 enthält zahlreiche Rezepte zu den unter Visual Studio 2012 neu eingeführten Windows Store Apps.
■ Kapitel 8 befasst sich mit diversen Hardware- und Programmier-Schnittstellen.
■ Kapitel 9 enthält eine Sammlung von Rezepten für den Zugriff auf wichtige Funktionen des
Windows-Betriebssystems.
■ Kapitel 10 kapselt ein Sammelsurium von Rezepten zu Themen, die sich in keines der anderen
Kapitel sinnvoll einordnen lassen, z.B. Setup-Projekte.
Die folgenden Kapitel sind aus Umfangsgründen nicht im gedruckten Teil des Buchs untergebracht, sie sind nur im E-Book enthalten.
■ Kapitel 11 umfasst eine unterhaltsame Serie von aufeinander abgestimmten Beispielen, die bis
in die gehobenen Regionen der OOP führen (Microsoft Event Pattern!).
■ Kapitel 12 enthält zahlreiche Rezepte zu den verschiedensten Problemen, wie sie bei der
Grafikprogrammierung auftreten.
■ Kapitel 13 ist dem Problemkreis Drucken/Druckeransteuerung gewidmet, wie er immer wieder
Gesprächsstoff in Entwickler-Foren ist.
Vorwort
27
■ Kapitel 14 befasst sich mit dem Dateizugriff unter .NET.
■ Kapitel 15 enthält zahlreiche Rezepte rund um den Problemkreis XML.
■ Kapitel 16 widmet sich verschiedensten Aspekten des Datenbankzugriffs unter ADO.NET.
■ Kapitel 17 umfasst zahlreiche Rezepte, die (fast) alle Facetten der Web-Programmierung unter
ASP.NET ausleuchten.
■ Kapitel 18 enthält einige nützliche Rezepte, die den Einstieg in die Technologie der Microsoft
Reporting Services erleichtern sollen.
■ Kapitel 19 bildet den krönenden Abschluss des Kochbuchs. In größeren praxistauglichen Beispielapplikationen werden verschiedene Programmiertechniken im Zusammenhang demonstriert.
Download und Ausführung
Alle Rezepte dieses Buchs können Sie sich unter der Adresse
LINK: http://www.doko-buch.de
herunterladen.
Beim Nachvollziehen der Rezepte beachten Sie bitte Folgendes:
■ Kopieren Sie die Rezepte auf die Festplatte. Wenn Sie auf die Projektmappendatei (*.sln)
klicken, wird Visual Studio in der Regel automatisch geöffnet und das jeweilige Beispiel wird
in die Entwicklungsumgebung geladen, wo Sie es z.B. mittels F5-Taste kompilieren und starten
können.
■ Einige wenige Datenbankprojekte verwenden absolute Pfadnamen, die Sie vor dem Kompilieren des Beispiels erst noch anpassen müssen.
■ Für einige Beispiele sind ein installierter Microsoft SQL Server Express LocalDB sowie der
Microsoft Internet Information Server (ASP.NET) erforderlich.
■ Um mit den WinRT-Projekten arbeiten zu können, müssen Sie Visual Studio 2012 in jedem
Fall unter Windows 8 ausführen.
■ Beachten Sie die zu einigen Beispielen beigefügten Liesmich.txt-Dateien, die Sie auf besondere
Probleme hinweisen.
Kontakt zu den Autoren
Nobody is perfect, und so können auch die Autoren nicht ausschließen, dass sich auf den über
1500 Seiten dieser oder jener Fehler eingeschlichen hat oder dass etwas Wichtiges einfach vergessen wurde.
28
Vorwort
HINWEIS: Auch wenn Sie das "Haar in der Suppe" gefunden haben sollten – wir sind für alle
sachlich fundierten Hinweise und Kritiken dankbar!
Wenn Sie Vorschläge oder Fragen zum Buch haben, können Sie uns gern über unsere Website kontaktieren:
LINK: www.doko-buch.de
Programmieren lernt man nur durch das unermüdliche Ausprobieren von Beispielen. Und so wünschen wir Ihnen – neben dem notwendigen Stehvermögen – auch zahlreiche freudige "Aha"-Erlebnisse auf Ihrem Weg zum erfolgreichen C#-Programmierer!
Walter Doberenz und Thomas Gewinnus
Wintersdorf und Frankfurt/O., im Januar 2013
1
Kleiner C#-Anfängerkurs
Kapitel
1
Kleiner C#-Anfängerkurs
Vor Beginn des Windows-Zeitalters wurden Programme geschrieben, die für jede Ein- und Ausgabe von Daten eine neue Textzeile in einem Bildschirmfenster (Konsole) erzeugten. Dieses Verhalten war ein Erbe aus jener Zeit, als lediglich Fernschreiber für die Ein- und Ausgabefunktionen
von Computern zur Verfügung standen.
Aber auch heute noch kann es für den Newcomer durchaus sinnvoll sein, wenn er für seine ersten
Schritte die gute alte Konsolentechnik verwendet. So kann er sich doch auf das zunächst Wesentliche, nämlich die Logik von C#-Befehlen, konzentrieren, ohne von der erdrückenden Vielfalt der
Windows-Oberfläche abgelenkt zu werden.
Die folgende Serie von sechs absoluten Anfängerbeispielen benutzt zunächst Konsolenanwendungen, um einige grundlegende C#-Sprachelemente zu demonstrieren. Die letzten beiden Beispiele
zeigen dann den Übergang zur zeitgemäßen Windows-Programmierung.
HINWEIS: Der "Kleine C#-Crashkurs" kann keinesfalls das Studium einführender C#-Literatur
ersetzen (siehe z.B. unser Buch [Visual C# 2012 – Grundlagen und Profiwissen]),
sondern ist lediglich als Ergänzung zu verstehen.
R1 Das EVA-Prinzip anwenden
Jeder Weg, und ist er noch so weit, beginnt mit dem ersten Schritt! Für den Anfang soll uns deshalb
ein ganz einfaches Beispiel genügen.
Aufgabenstellung
Nacheinander sind drei positive ganze Zahlen einzugeben. Das Programm soll die größte der drei
Zahlen ermitteln und das Ergebnis anzeigen.
Herunterladen