Visual C# 2005 - Grundlagen, Programmiertechniken, Datenbanken
von: Frank Eller
Addison-Wesley Verlag, 2006
ISBN: 9783827322883
Sprache: Deutsch
1097 Seiten, Download: 8113 KB
Format: PDF, auch als Online-Lesen
Inhalt | 6 | ||
Vorwort | 6 | ||
1 Einführung | 6 | ||
1 Das .NET Framework | 6 | ||
2 Erste Schritte | 6 | ||
3 Das Visual Studio 2005 | 6 | ||
II Grundlagen | 7 | ||
4 Datentypen | 7 | ||
5 Ablaufsteuerung | 8 | ||
6 Klassen und Objekte | 8 | ||
7 Vererbung und Polymorphie | 9 | ||
8 Delegates und Events | 9 | ||
9 Interfaces | 9 | ||
10 Attribute | 9 | ||
11 Generics | 10 | ||
III Grundlegende Programmiertechniken | 10 | ||
12 Arbeiten mit Datentypen | 10 | ||
13 Collections | 11 | ||
14 Dateien und Verzeichnisse | 11 | ||
15 Multithreading | 12 | ||
16 Fehlersuche und Fehlerabsicherung | 12 | ||
IV Windows-Programmierung | 13 | ||
17 Einführung in Windows.Forms | 13 | ||
18 Standard-Steuerelemente | 13 | ||
19 Eigene Steuerelemente erstellen | 14 | ||
20 Benutzeroberfläche | 14 | ||
21 Grafikprogrammierung (GDI+) | 15 | ||
22 Drucken | 16 | ||
V Programmiertechniken | 16 | ||
23 Lokalisierung von Anwendungen | 16 | ||
24 Externe Programme steuern (Automation) | 16 | ||
25 Reflection | 17 | ||
26 Weitergabe von Windows-Programmen (Setup.exe) | 17 | ||
VI Datenbanken (ADO.NET) | 17 | ||
27 Grundlagen | 17 | ||
28 Überblick über ADO.NET | 18 | ||
29 Fortgeschrittene Programmiertechniken | 18 | ||
A Glossar | 18 | ||
Index | 18 | ||
Vorwort | 20 | ||
Teil I Einführung | 24 | ||
1 Das .NET Framework | 26 | ||
1.1 Warum .NET? | 26 | ||
1.1.1 Die .NET-Strategie | 26 | ||
1.1.2 .NET und Java | 27 | ||
1.2 Vorteile von .NET | 29 | ||
1.3 Der Aufbau des .NET Frameworks | 32 | ||
1.3.1 Übersicht | 33 | ||
1.3.2 Die Common Language Runtime | 33 | ||
1.3.3 Die Klassenbibliothek | 35 | ||
1.3.4 Die Benutzerschnittstelle | 36 | ||
1.3.5 Common Language Specification und Common Type System | 37 | ||
1.3.6 Der Intermediate Language Code (IL-Code) | 38 | ||
1.3.7 Der Global Assembly Cache (GAC) | 39 | ||
1.3.8 Strong Names | 40 | ||
1.4 Neuerungen in .NET 2.0 | 41 | ||
1.4.1 Neues im Compiler | 41 | ||
1.4.2 Neues in C# bzw. dem .NET Framework | 42 | ||
1.4.3 Neuerungen in Windows.Forms | 43 | ||
2 Erste Schritte | 46 | ||
2.1 Hello World (Konsole) | 46 | ||
2.1.1 Das erste Programm | 46 | ||
2.1.2 Erweiterung des Programms | 50 | ||
2.2 Hello World (Windows-Version) | 53 | ||
2.2.1 Projektauswahl | 53 | ||
2.2.2 Entwurf der Oberfläche | 55 | ||
2.2.3 Einfügen von Code | 57 | ||
2.2.4 Quelltext-Dateien | 59 | ||
3 Das Visual Studio 2005 | 62 | ||
3.1 Einführung | 62 | ||
3.1.1 Übersicht | 63 | ||
3.1.2 Systemvoraussetzungen und Versionen | 64 | ||
3.2 Wichtige Fenster der Entwicklungsumgebung | 65 | ||
3.2.1 Der Projektmappen-Explorer | 67 | ||
3.2.2 Die Toolbox | 70 | ||
3.2.3 Das Eigenschafts-/Ereignisfenster | 70 | ||
3.2.4 Die Projekteigenschaften | 71 | ||
3.3 Der visuelle Designer | 72 | ||
3.4 Der Editor | 73 | ||
3.4.1 Anpassung des Editors | 73 | ||
3.4.2 IntelliSense | 75 | ||
3.4.3 Smarttags | 75 | ||
3.4.4 Änderungen innerhalb einer Sitzung | 75 | ||
3.4.5 Refactoring | 76 | ||
3.5 Tools und Hilfsmittel | 76 | ||
3.5.1 Das Klassendiagramm | 77 | ||
3.5.2 Das Objekttestcenter | 77 | ||
3.5.3 Code Snippets (Codeausschnitte) | 79 | ||
3.6 Fazit | 79 | ||
Teil II Grundlagen | 80 | ||
4 Datentypen | 82 | ||
4.1 Werte- und Referenztypen | 82 | ||
4.1.1 Unterschiede zwischen Werte- und Referenztypen | 82 | ||
4.2 Integrierte Datentypen | 84 | ||
4.2.1 Der Datentyp bool | 85 | ||
4.2.2 Der Datentyp char | 86 | ||
4.2.3 Numerische Datentypen | 88 | ||
4.2.4 Der Datentyp string | 89 | ||
4.2.5 Nullable Types | 89 | ||
4.3 Variablen | 92 | ||
4.3.1 Deklaration und Initialisierung | 92 | ||
4.3.2 Bezeichner | 93 | ||
4.3.3 Gültigkeitsbereich | 94 | ||
4.3.4 Konstanten | 95 | ||
4.4 Konvertierungen und Boxing | 95 | ||
4.4.1 Implizite und explizite Konvertierung | 96 | ||
4.4.2 Boxing und Unboxing | 97 | ||
4.4.3 Typumwandlung | 98 | ||
4.5 Arrays | 99 | ||
4.5.1 Eindimensionale Arrays | 100 | ||
4.5.2 Mehrdimensionale Arrays | 101 | ||
4.5.3 Ungleichförmige Arrays | 102 | ||
4.5.4 Arbeiten mit Arrays | 103 | ||
4.5.5 Syntaxzusammenfassung | 106 | ||
4.6 Aufzählungstypen (enum) | 107 | ||
4.6.1 Grundlagen | 107 | ||
4.6.2 Deklaration und Anwendung | 108 | ||
4.6.3 Bitfelder | 110 | ||
4.6.4 Arbeiten mit Aufzählungen | 112 | ||
4.6.5 Syntaxzusammenfassung | 114 | ||
5 Ablaufsteuerung | 116 | ||
5.1 Verzweigungen | 116 | ||
5.1.1 Die if-Anweisung | 116 | ||
5.1.2 Die switch-Anweisung | 118 | ||
5.1.3 Die bedingte Zuweisung (tenärer Operator) | 119 | ||
5.1.4 Die goto-Anweisung | 120 | ||
5.2 Schleifen | 121 | ||
5.2.1 Die for-Schleife | 121 | ||
5.2.2 Die while-Schleife | 122 | ||
5.2.3 Die do-Schleife | 123 | ||
5.2.4 Die foreach-Schleife | 124 | ||
5.3 Operatoren | 124 | ||
5.3.1 Arithmetische Operatoren | 125 | ||
5.3.2 Vergleichsoperatoren | 126 | ||
5.3.3 Logische Operatoren | 126 | ||
5.3.4 Bitweise Operatoren | 127 | ||
5.3.5 Zusammengesetzte Operatoren | 127 | ||
5.3.6 Sonstige Operatoren | 128 | ||
6 Klassen und Objekte | 130 | ||
6.1 Grundlagen der Objektorientierung | 130 | ||
6.1.1 Abstraktion | 130 | ||
6.1.2 Kapselung | 131 | ||
6.1.3 Vererbung | 132 | ||
6.1.4 Polymorphie | 133 | ||
6.1.5 Aggregation | 133 | ||
6.2 Gliederung einer Anwendung: Namespaces | 134 | ||
6.2.1 Deklaration | 135 | ||
6.2.2 Aufteilung der Deklaration | 136 | ||
6.3 Klassen | 137 | ||
6.3.1 Klassendeklaration | 137 | ||
6.3.2 Felder (Instanzvariablen) | 138 | ||
6.3.3 Methoden | 140 | ||
6.3.4 Konstruktoren und Destruktoren | 148 | ||
6.3.5 Eigenschaften (Properties) | 151 | ||
6.4 Statische Klassenelemente | 156 | ||
6.4.1 Private Konstruktoren | 157 | ||
6.4.2 Statische Konstruktoren | 158 | ||
6.4.3 Statische Klassen | 159 | ||
6.5 Modifizierer | 159 | ||
6.6 Operatorenüberladung | 162 | ||
6.6.1 Überladen mathematischer Operatoren | 162 | ||
6.6.2 Überladen der Konvertierungsoperatoren | 163 | ||
6.7 Partielle Klassen | 164 | ||
6.8 Strukturen (struct) | 165 | ||
6.8.1 Deklaration | 165 | ||
6.8.2 Nullable Structs | 167 | ||
7 Vererbung und Polymorphie | 168 | ||
7.1 Vererbung | 168 | ||
7.1.1 Ableiten von Klassen | 168 | ||
7.1.2 Gemeinsame Methoden aller Klassen | 171 | ||
7.1.3 Virtuelle Methoden | 172 | ||
7.2 Polymorphie | 174 | ||
7.3 Abstrakte, versiegelte und verschachtelte Klassen | 178 | ||
7.3.1 Versiegelte Klassen | 178 | ||
7.3.2 Abstrakte Klassen | 179 | ||
7.3.3 Verschachtelte Klassen | 179 | ||
8 Delegates und Events | 182 | ||
8.1 Grundlagen zu Delegates | 182 | ||
8.2 Verwenden von Delegates | 183 | ||
8.2.1 Eine Sortierroutine | 183 | ||
8.2.2 Ein Delegate – mehrere Methoden | 189 | ||
8.2.3 Anonyme Methoden | 190 | ||
8.3 Ereignisse (Events) | 193 | ||
8.3.1 Deklaration | 193 | ||
8.3.2 Ereignisse implementieren und verwenden | 195 | ||
9 Interfaces | 200 | ||
9.1 Grundlagen | 200 | ||
9.1.1 Deklaration | 201 | ||
9.1.2 Implementierung | 202 | ||
9.1.3 Interface explizit verwenden | 207 | ||
9.1.4 Nicht implementierte Methoden | 208 | ||
9.2 Die Interfaces IComparer und IComparable | 209 | ||
9.2.1 Deklaration | 209 | ||
9.2.2 Verwendung von IComparer und IComparable | 210 | ||
9.3 Das Interface IDisposable | 213 | ||
10 Attribute | 216 | ||
10.1 Grundlagen | 216 | ||
10.1.1 Verwendung | 217 | ||
10.1.2 Parameter | 217 | ||
10.2 Eigene Attribute erstellen | 218 | ||
10.2.1 Verwendung festlegen | 219 | ||
10.2.2 Attributparameter | 219 | ||
10.2.3 Ermitteln des Attributs | 220 | ||
10.3 Beispiel: Ein Todo-Attribut | 220 | ||
10.3.1 Deklaration der Attributklasse | 220 | ||
10.3.2 Auswertung der Attribute | 222 | ||
11 Generics | 226 | ||
11.1 Grundlagen zu Generics | 226 | ||
11.1.1 Deklaration | 226 | ||
11.1.2 Beispiel: ein generischer Stack | 227 | ||
11.1.3 Der Standardwert eines generischen Typs | 228 | ||
11.2 Constraints | 230 | ||
11.2.1 Mögliche Bedingungen | 231 | ||
11.2.2 Erweitern des Beispiels | 232 | ||
11.3 Vererbung mit Generics | 234 | ||
11.3.1 Konkrete Klassen mit generischer Basisklasse | 235 | ||
11.3.2 Generische Klassen mit generischer Basisklasse | 235 | ||
11.4 Generische Methoden | 236 | ||
Teil III Grundlegende Programmiertechniken | 238 | ||
12 Arbeiten mit Datentypen | 240 | ||
12.1 Zahlen | 240 | ||
12.1.1 Notation | 240 | ||
12.1.2 Rundungsfehler | 240 | ||
12.1.3 Division durch Null und der Wert unendlich | 242 | ||
12.1.4 Arithmetische Funktionen | 242 | ||
12.1.5 Zahlen runden und andere Funktionen | 243 | ||
12.1.6 Zufallszahlen | 244 | ||
12.2 Strings | 245 | ||
12.2.1 Grundlagen | 245 | ||
12.2.2 Verketten von Strings | 247 | ||
12.2.3 Zugriff auf Zeichenketten | 248 | ||
12.2.4 Vergleiche von Zeichenketten | 252 | ||
12.2.5 Die Klasse StringBuilder | 253 | ||
12.2.6 Unicode | 256 | ||
12.2.7 Syntaxzusammenfassung | 258 | ||
12.3 Datum und Zeit | 263 | ||
12.3.1 Die Struktur DateTime | 263 | ||
12.3.2 Die Struktur TimeSpan | 264 | ||
12.3.3 Arbeiten mit Datum und Zeit | 266 | ||
12.3.4 Zeitmessungen - die Klasse Stopwatch | 267 | ||
12.3.5 Syntaxzusammenfassung | 268 | ||
12.4 Formatierungsmethoden in .NET | 272 | ||
12.4.1 Grundlagen | 272 | ||
12.4.2 Zahlen formatieren | 273 | ||
12.4.3 Datum und Zeit formatieren | 279 | ||
13 Collections | 282 | ||
13.1 Grundlagen | 282 | ||
13.2 Die Listenklassen aus System.Collections | 283 | ||
13.2.1 Übersicht | 283 | ||
13.2.2 Übersicht über die verwendeten Interfaces | 286 | ||
13.3 Grundlegende Programmiertechniken | 287 | ||
13.3.1 Listenelemente löschen | 287 | ||
13.3.2 Sortieren von Listen | 290 | ||
13.3.3 Suchen in einer ArrayList | 295 | ||
13.3.4 Queue und Stack verwenden | 296 | ||
13.3.5 Datenaustausch zwischen Listen | 299 | ||
13.4 Eigene Listenklassen erstellen | 301 | ||
13.4.1 Eine neue Art von Eigenschaft: der Indexer | 301 | ||
13.4.2 Implementierung der foreach-Schleife | 303 | ||
13.4.3 Beispielprogramm Bücherliste | 304 | ||
13.5 Syntaxzusammenfassung | 309 | ||
13.5.1 Interfaces | 309 | ||
13.5.2 Klassen | 311 | ||
13.6 Generische Listenklassen | 313 | ||
13.6.1 Verwendung generischer Listenklassen | 314 | ||
13.6.2 Geschwindigkeitsvergleich Generics zu normal | 316 | ||
14 Dateien und Verzeichnisse | 318 | ||
14.1 Grundlagen | 318 | ||
14.1.1 Streams | 318 | ||
14.1.2 Klassen von System.IO | 319 | ||
14.2 Verzeichnisse und Dateien | 321 | ||
14.2.1 Datei- und Verzeichnisinformationen | 321 | ||
14.2.2 Ermittlung von Dateien in einem Verzeichnis | 324 | ||
14.2.3 Manipulation von Dateien und Verzeichnissen | 328 | ||
14.2.4 Verzeichnisse, Dateien und Laufwerke ermitteln | 333 | ||
14.2.5 Datei- und Verzeichnisnamen bearbeiten | 336 | ||
14.2.6 Beispielanwendung Backup | 337 | ||
14.2.7 Beispielanwendung Synchronisieren | 344 | ||
14.2.8 Syntaxzusammenfassung | 347 | ||
14.3 Dialoge für Verzeichnisse und Dateien | 355 | ||
14.3.1 Der Dialog zum Öffnen einer Datei | 355 | ||
14.3.2 Der Dialog zum Speichern einer Datei | 356 | ||
14.3.3 Der Dialog zur Verzeichnisauswahl | 356 | ||
14.3.4 Syntaxzusammenfassung | 357 | ||
14.4 Textdateien | 358 | ||
14.4.1 Kodierung von Textdateien | 358 | ||
14.4.2 Textdateien lesen (mit StreamReader) | 359 | ||
14.4.3 Textdateien schreiben (StreamWriter) | 366 | ||
14.4.4 Beispielprogramm – Textdatei erstellen und lesen | 368 | ||
14.4.5 Beispielprogramm – Textkodierung ändern | 370 | ||
14.4.6 Zeichenketten lesen und schreiben (StringReader und StringWriter) | 371 | ||
14.4.7 Syntaxzusammenfassung | 372 | ||
14.5 Binäre Dateien | 376 | ||
14.5.1 Die Klasse FileStream | 377 | ||
14.5.2 Beispielprogramm – Dateien zerteilen | 379 | ||
14.5.3 Gleichzeitiger Zugriff auf eine Datei | 386 | ||
14.5.4 Die Klasse BufferedStream | 389 | ||
14.5.5 MemoryStream (Streams im Arbeitsspeicher) | 393 | ||
14.5.6 Dateien komprimieren | 394 | ||
14.5.7 BinaryReader und -Writer (Variablen binär speichern) | 396 | ||
14.5.8 Beispielprogramm – unterschiedliche Daten schreiben und lesen | 398 | ||
14.5.9 Syntaxzusammenfassung | 403 | ||
14.6 Asynchroner Dateizugriff | 406 | ||
14.6.1 Verwendung eines asynchronen Streams | 407 | ||
14.6.2 Asynchrones Schreiben mit Callback | 410 | ||
14.7 Verzeichnisse überwachen | 412 | ||
14.7.1 FileSystemWatcher verwenden | 412 | ||
14.7.2 Verzeichnisüberwachung mit Logdatei | 414 | ||
14.8 Serialisierung | 417 | ||
14.8.1 Grundlagen | 417 | ||
14.8.2 Serialisieren mit BinaryFormatter und SoapFormatter | 417 | ||
14.8.3 Angepasste Serialisierung | 423 | ||
14.8.4 Die Klasse XmlSerializer | 425 | ||
15 Multithreading | 430 | ||
15.1 Grundlagen | 430 | ||
15.1.1 Preemptives Multitasking | 430 | ||
15.1.2 Multithreading-Modelle | 431 | ||
15.1.3 Wozu Multithreading? | 431 | ||
15.2 Arbeiten mit Threads | 432 | ||
15.2.1 Die Klasse Thread | 432 | ||
15.2.2 Beispielanwendung | 437 | ||
15.2.3 Syntaxzusammenfassung | 440 | ||
15.3 Synchronisation | 441 | ||
15.3.1 Wozu synchronisieren? | 441 | ||
15.3.2 Die Klasse Monitor | 442 | ||
15.3.3 Die Anweisung lock() | 449 | ||
15.4 Die Komponente BackgroundWorker | 450 | ||
15.4.1 Methoden und Ereignisse | 450 | ||
15.4.2 Beispielapplikation: Fibonacci | 451 | ||
16 Fehlersuche und Fehlerabsicherung | 456 | ||
16.1 Fehlerabsicherung | 456 | ||
16.1.1 Abfangen von Exceptions | 457 | ||
16.1.2 try-catch-Syntax | 458 | ||
16.1.3 Eigenschaften und Methoden der Klasse Exception | 464 | ||
16.1.4 Eigene Exception-Klassen | 464 | ||
16.2 Fehlersuche (Debugging) | 467 | ||
16.2.1 Grundlagen | 467 | ||
16.2.2 Fehlersuche in der Entwicklungsumgebung | 469 | ||
16.2.3 Ausgaben der Klasse Debug | 474 | ||
16.2.4 Syntaxzusammenfassung | 476 | ||
Teil IV Windows-Programmierung | 478 | ||
17 Einführung in Windows.Forms | 480 | ||
17.1 Einführung | 480 | ||
17.1.1 Interaktion zwischen Code und Designer | 481 | ||
17.1.2 Arbeiten mit dem Visual Studio | 484 | ||
17.2 Arbeiten mit Formularen | 487 | ||
17.2.1 Eigenschaften von Formularen | 487 | ||
17.2.2 Grundlegende Vorgehensweisen | 491 | ||
18 Standard-Steuerelemente | 502 | ||
18.1 Überblick | 502 | ||
18.1.1 .NET-Steuerelemente | 502 | ||
18.1.2 COM und .NET | 503 | ||
18.1.3 Steuerelemente in Toolbox einfügen | 504 | ||
18.2 Gemeinsame Member der Steuerelemente | 505 | ||
18.2.1 Aussehen | 506 | ||
18.2.2 Größe, Position und Layout | 509 | ||
18.2.3 Eingabefokus, Validierung | 513 | ||
18.2.4 Sonstiges | 515 | ||
18.2.5 Syntaxzusammenfassung | 517 | ||
18.3 Buttons | 521 | ||
18.3.1 Das Steuerelement Button | 521 | ||
18.3.2 Das Steuerelement CheckBox | 523 | ||
18.3.3 Das Steuerelement RadioButton | 525 | ||
18.4 Steuerelemente für Text | 526 | ||
18.4.1 Das Steuerelement Label | 526 | ||
18.4.2 LinkLabel | 527 | ||
18.4.3 Das Steuerelement TextBox | 529 | ||
18.4.4 Das Steuerelement MaskedTextBox | 536 | ||
18.4.5 Das Steuerelement RichTextBox | 538 | ||
18.5 Steuerelemente für Grafik | 541 | ||
18.5.1 Das Steuerelement PictureBox | 541 | ||
18.5.2 Das Steuerelement ImageList | 542 | ||
18.6 Listen | 543 | ||
18.6.1 ListBox | 543 | ||
18.6.2 CheckedListBox | 558 | ||
18.6.3 ComboBox | 559 | ||
18.6.4 ListView | 560 | ||
18.6.5 Beispielprogramm | 569 | ||
18.6.6 TreeView | 580 | ||
18.6.7 Beispielprogramm: Festplatteninhalt ermitteln | 588 | ||
18.7 Datum und Zeit | 594 | ||
18.7.1 MonthCalendar | 594 | ||
18.7.2 DateTimePicker | 597 | ||
18.8 Schiebe- und Zustandsbalken, Drehfelder | 598 | ||
18.8.1 HScrollBar, VScrollBar | 598 | ||
18.8.2 TrackBar | 600 | ||
18.8.3 ProgressBar | 602 | ||
18.8.4 NumericUpDown | 602 | ||
18.8.5 DomainUpDown | 602 | ||
18.9 Gruppieren von Steuerelementen | 603 | ||
18.9.1 Panel | 603 | ||
18.9.2 GroupBox | 605 | ||
18.9.3 TabControl (Dialogblätter) | 605 | ||
18.10 Weitere Steuerelemente | 607 | ||
18.10.1 SplitContainer | 607 | ||
18.10.2 TableLayoutPanel | 608 | ||
18.10.3 FlowLayoutPanel | 608 | ||
18.10.4 Timer | 608 | ||
18.10.5 ToolTip | 609 | ||
18.10.6 HelpProvider | 612 | ||
18.10.7 ErrorProvider | 615 | ||
18.10.8 NotifyIcon | 618 | ||
19 Eigene Steuerelemente erstellen | 622 | ||
19.1 Grundlagen zu Steuerelementen | 622 | ||
19.1.1 Arten von Steuerelementen | 622 | ||
19.1.2 Vorbereitung | 623 | ||
19.2 Zusammengesetzte Steuerelemente | 625 | ||
19.2.1 Eine IP-Textbox als Steuerelement | 625 | ||
19.2.2 Funktionalität hinzufügen | 627 | ||
19.2.3 Die Bitmap für die Toolbox | 635 | ||
19.2.4 Testen des Steuerelements | 636 | ||
19.3 Abgeleitete Steuerelemente | 637 | ||
19.3.1 Ein erweitertes Panel | 637 | ||
19.3.2 Funktionalität hinzufügen | 639 | ||
20 Benutzeroberfläche | 648 | ||
20.1 Bedienelemente | 648 | ||
20.1.1 Der Menüeditor | 649 | ||
20.1.2 Menüeigenschaften einstellen | 650 | ||
20.1.3 Kontextmenüs | 654 | ||
20.1.4 Symbolleisten (ToolStrip-Steuerelement) | 658 | ||
20.1.5 Die Statusleiste (StatusStrip-Steuerelement) | 661 | ||
20.1.6 Eigene Elemente für den ToolStrip | 662 | ||
20.2 Standarddialoge | 668 | ||
20.2.1 Dateien öffnen und speichern | 668 | ||
20.2.2 Farbauswahl | 670 | ||
20.2.3 Schriftart auswählen | 670 | ||
20.3 MDI-Anwendungen | 671 | ||
20.3.1 Grundlagen | 671 | ||
20.3.2 MDI-Fenster verwalten | 672 | ||
20.3.3 Beispiel: Mergen von Menüs und ToolStrip-Komponenten | 674 | ||
20.4 Programmiertechniken | 677 | ||
20.4.1 Anzeige eines Splashscreens | 677 | ||
20.4.2 Arbeiten mit der Zwischenablage | 678 | ||
20.4.3 Drag&Drop | 679 | ||
20.4.4 Konfigurationsdateien | 687 | ||
21 Grafikprogrammierung (GDI+) | 692 | ||
21.1 Einführung | 692 | ||
21.1.1 Ein erstes Beispiel | 693 | ||
21.1.2 Grafik-Container (Form, PictureBox) | 696 | ||
21.1.3 Dispose für Grafikobjekte | 698 | ||
21.1.4 Fazit | 699 | ||
21.2 Elementare Grafikoperationen | 700 | ||
21.2.1 Linien, Rechtecke, Vielecke, Ellipsen, Kurven (Graphics-Klasse) | 700 | ||
21.2.2 Farben (Color-Struktur) | 713 | ||
21.2.3 Linienformen (Pen-Klasse) | 715 | ||
21.2.4 Füllmuster (Brush-Klassen) | 719 | ||
21.2.5 Koordinatensysteme und -transformationen | 724 | ||
21.2.6 Syntaxzusammenfassung | 728 | ||
21.3 Text ausgeben (Font-Klassen) | 732 | ||
21.3.1 Einführung | 732 | ||
21.3.2 TrueType-, OpenType- und Type-1-Schriftformate | 734 | ||
21.3.3 Schriftarten und -familien | 735 | ||
21.3.4 Schriftgröße | 738 | ||
21.3.5 Schriftauszeichnung und Textformatierung | 749 | ||
21.3.6 Font-Auswahldialog | 761 | ||
21.3.7 Syntaxzusammenfassung | 763 | ||
21.4 Bitmaps, Icons und Metafiles | 765 | ||
21.4.1 Die Klassen Graphics, Image und Bitmap | 765 | ||
21.4.2 Bitmaps in Formularen darstellen | 768 | ||
21.4.3 Bitmaps manipulieren | 771 | ||
21.4.4 Transparente Bitmaps | 779 | ||
21.4.5 Metafile-Dateien | 784 | ||
21.4.6 Syntaxzusammenfassung | 787 | ||
21.5 Fortgeschrittene Programmiertechniken | 788 | ||
21.5.1 Zeichen- und Textqualität | 788 | ||
21.5.2 Grafikobjekte zusammensetzen (GraphicsPath) | 793 | ||
21.5.3 Umgang mit Regionen und Clipping | 795 | ||
21.5.4 Rechteck-Auswahl mit der Maus (Rubberbox) | 802 | ||
21.5.5 Bitmap-Grafik zwischenspeichern (AutoRedraw) | 806 | ||
21.5.6 Flimmerfreie Grafik (Double-Buffer-Technik) | 818 | ||
21.5.7 Scrollbereich für Grafik | 819 | ||
21.5.8 Einfache Animationseffekte | 821 | ||
21.5.9 Bitmaps direkt manipulieren | 826 | ||
22 Drucken | 832 | ||
22.1 Überblick | 832 | ||
22.1.1 Limitationen und weitere Werkzeuge zum Drucken | 832 | ||
22.1.2 Die wichtigsten Klassen und Steuerelemente | 833 | ||
22.2 Grundlagen | 834 | ||
22.2.1 Die Komponente PrintDocument | 834 | ||
22.2.2 Die Dialoge PrintDialog und PageSetupDialog | 837 | ||
22.2.3 Der Dialog PrintPreviewDialog | 841 | ||
22.2.4 Druckereigenschaften und Seitenlayout | 842 | ||
22.2.5 Syntaxzusammenfassung | 845 | ||
22.3 Beispiel – Mehrseitiger Druck | 848 | ||
22.4 Eine Textbox zum Drucken | 852 | ||
22.5 Weitere Programmiertechniken | 857 | ||
22.5.1 Unterschiedliches Seitenlayout | 857 | ||
22.5.2 Drucken ohne Status- bzw. Abbruch-Dialog | 857 | ||
22.6 Eigene Seitenvorschau | 858 | ||
Teil V Programmiertechniken | 864 | ||
23 Lokalisierung von Anwendungen | 866 | ||
23.1 Eigenschaften von Steuerelementen und Formularen lokalisieren | 866 | ||
23.1.1 Ressourcendateien | 866 | ||
23.1.2 Auswertung der Lokalisierungseinstellungen | 867 | ||
23.1.3 Auswahl der aktuellen Kultur | 868 | ||
23.1.4 Zusätzliche Zeichenketten in den Lokalisierungsdateien speichern | 868 | ||
23.2 Beispielprogramm | 869 | ||
24 Externe Programme steuern ( Automation) | 874 | ||
24.1 Automation mittels COM-Komponenten | 874 | ||
24.1.1 Verwendung der Klassenbibliothek | 874 | ||
24.1.2 Beispiel – RichTextBox mit Word ausdrucken | 875 | ||
24.2 API-Aufrufe (P/Invoke) | 879 | ||
24.2.1 Grundlagen zu P/Invoke | 879 | ||
24.2.2 Konvertierungen | 881 | ||
24.2.3 Aufruf von DLL-Funktionen | 882 | ||
25 Reflection | 886 | ||
25.1 Grundlagen zu Reflection | 886 | ||
25.1.1 Grundlegende Eigenschaften und Methoden von Type | 886 | ||
25.1.2 Relevante Klassen für Reflection | 887 | ||
25.2 Beispielapplikation: Informationen über die BCL ermitteln | 888 | ||
25.2.1 Das Hauptformular der Anwendung – der Aufbau | 889 | ||
25.2.2 Die Klasse AssemblyReflector | 890 | ||
25.2.3 Die Klasse TypeReflector | 897 | ||
25.2.4 Das Hauptformular – die Funktionalität | 902 | ||
25.2.5 Programmstart mit Splashscreen | 904 | ||
25.3 Beispielprogramm: Daten mittels Reflection ändern | 907 | ||
25.3.1 Die Klasse zum Instanzieren | 908 | ||
25.3.2 Das Hauptformular | 908 | ||
26 Weitergabe von Windows- Programmen ( Setup. exe) | 912 | ||
26.1 Einführung | 912 | ||
26.2 Installationsprogramm erstellen (Entwicklersicht) | 913 | ||
26.3 Installation ausführen (Kundensicht) | 915 | ||
26.4 Installationsprogramm für Spezialaufgaben | 917 | ||
26.4.1 Grundeinstellungen eines Setup-Projekts | 917 | ||
26.4.2 Startmenü, Desktop-Icons | 920 | ||
26.4.3 Benutzeroberfläche des Installationsprogramms | 921 | ||
26.4.4 Start- und Weitergabebedingungen | 924 | ||
26.4.5 Dateityp registrieren | 926 | ||
26.5 ClickOnce | 927 | ||
26.5.1 ClickOnce Einstellungen | 928 | ||
26.5.2 ClickOnce-Installation aus Anwendersicht | 933 | ||
26.6 Signieren eines Projekts | 934 | ||
26.6.1 Bestandteile einer Signatur | 934 | ||
26.6.2 Der Signiervorgang | 936 | ||
26.6.3 Signierte DLL in den GAC einfügen | 937 | ||
Teil VI Datenbanken (ADO.NET) | 940 | ||
27 Grundlagen | 942 | ||
27.1 Datenbanksysteme | 942 | ||
27.1.1 Übersicht über gebräuchliche Datenbanksysteme | 943 | ||
27.2 Einrichten der Datenbankumgebung | 945 | ||
27.2.1 Installation des SQL Server 2005 (Standard/Express) | 945 | ||
27.2.2 Die Beispieldatenbank des Buchs | 948 | ||
27.3 Datenbankwerkzeuge | 949 | ||
27.3.1 SQL Server Management Studio | 949 | ||
27.3.2 SQL Management Studio Express | 954 | ||
27.4 SQL Grundlagen | 956 | ||
27.4.1 Data Definition Language | 956 | ||
27.4.2 Data Manipulation Language | 958 | ||
27.4.3 Data Query Language | 960 | ||
27.4.4 Stored Procedures | 963 | ||
27.5 Datenbankaufbau | 966 | ||
27.5.1 Global Unique Identifiers (GUID) | 967 | ||
27.5.2 Normalformen | 968 | ||
28 Überblick über ADO.NET | 970 | ||
28.1 Grundlegender Datenbankzugriff | 970 | ||
28.1.1 Namespaces für die Datenbankprovider | 970 | ||
28.1.2 Die Klasse SqlConnection | 971 | ||
28.1.3 Datenbankkommandos absetzen (SqlCommand) | 975 | ||
28.1.4 Daten ermitteln (SqlDataReader) | 976 | ||
28.1.5 Stored Procedures verwenden | 984 | ||
28.2 In-Memory-Datenbank: Das DataSet | 987 | ||
28.2.1 Klassen für das DataSet | 988 | ||
28.2.2 Laden der Daten: SqlDataAdapter | 989 | ||
28.2.3 Erzeugen von Kommandos: Der SqlCommandBuilder | 991 | ||
28.2.4 Speichern der Daten mit SqlDataAdapter | 994 | ||
28.2.5 Datenspeicher: Die Klasse DataTable | 996 | ||
28.2.6 Verknüpfen von Tabellen (DataRelation) | 999 | ||
28.3 Visual Data Tools | 1002 | ||
28.3.1 Steuerelemente für den Datenzugriff | 1003 | ||
28.3.2 Die Hilfsmittel des Visual Studio | 1003 | ||
28.3.3 Das DataGridView im Detail | 1010 | ||
28.3.4 Weitere Steuerelemente für die Datenbindung | 1016 | ||
28.3.5 Typisierte DataSets | 1018 | ||
29 Fortgeschrittene Programmiertechniken | 1024 | ||
29.1 Metadaten des SQL Server ermitteln | 1024 | ||
29.1.1 Arten von Metadaten | 1024 | ||
29.1.2 Ermitteln des Datenbankschemas | 1027 | ||
29.1.3 Parameter für GetSchema() | 1027 | ||
29.1.4 Ermitteln der Datenbankinformationen | 1028 | ||
29.2 Automatische Erstellung von Business-Objekten | 1033 | ||
29.2.1 Das Hauptformular | 1034 | ||
29.2.2 Tabellen auswählen | 1038 | ||
29.2.3 »Konvertieren« der Tabellen in Klassen | 1042 | ||
29.3 Datenbindung mit Objekten | 1050 | ||
29.3.1 Grundlagen der Datenbindung an Objekte | 1050 | ||
29.3.2 Beispielprogramm mit Objekt-Datenbindung | 1052 | ||
A Glossar | 1060 | ||
Index | 1066 | ||
A | 1066 | ||
B | 1068 | ||
C | 1069 | ||
D | 1072 | ||
E | 1074 | ||
F | 1075 | ||
G | 1077 | ||
H | 1079 | ||
I | 1079 | ||
J | 1081 | ||
K | 1082 | ||
L | 1082 | ||
M | 1083 | ||
N | 1084 | ||
O | 1086 | ||
P | 1086 | ||
Q | 1088 | ||
R | 1088 | ||
S | 1089 | ||
T | 1094 | ||
U | 1095 | ||
V | 1096 | ||
W | 1097 | ||
X | 1097 | ||
Y | 1097 | ||
Z | 1097 | ||
Mehr eBooks bei www.ciando.com | 0 |