Walter Doberenz, Thomas Gewinnus Visual Basic 2008 Kochbuch ISBN-10: 3-446-41492-4 ISBN-13: 978-3-446-41492-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41492-1 sowie im Buchhandel. Inhaltsverzeichnis Vorwort ........................................................................... 19 1 Kleiner VB-Crashkurs für Anfänger ........................................... R1.1 Das EVA-Prinzip anwenden ................................................. R1.2 Ein Array definieren und initialisieren ....................................... R1.3 Die Arraygröße zur Laufzeit ändern .......................................... R1.4 Berechnungen in eine Methode auslagern ..................................... R1.5 Konsolenprogramm nach Windows portieren ................................ R1.6 Zahlen in eine ListBox eingeben und auswerten ............................... 23 23 27 29 31 35 39 2 Sprache ........................................................................... R2.1 Anwendungen von C# nach Visual Basic portieren ............................ R2.2 String in Array kopieren und umgekehrt ...................................... R2.3 Ein Byte-Array in einen String konvertieren .................................. R2.4 Strukturvariablen in Arrays einsetzen ......................................... R2.5 Eine einzelne Spalte aus einem Array kopieren ............................... R2.6 In einer ArrayList suchen und sortieren ....................................... R2.7 In einer generischen Liste suchen und sortieren ............................... R2.8 Zufallszahlen erzeugen ...................................................... R2.9 Eine Iterationsschleife verstehen (Quadratwurzel) ............................. R2.10 Eine Iterationsschleife verstehen (Goldener Schnitt) ........................... R2.11 Funktionen rekursiv aufrufen ................................................. R2.12 Zeichenketten mittels StringBuilder addieren ................................. R2.13 Strings vergleichen .......................................................... R2.14 Zeitdifferenzen ermitteln ..................................................... R2.15 Datumsdifferenzen ermitteln ................................................. R2.16 Das Alter in Jahren bestimmen ............................................... R2.17 Die Monatsdifferenz berechnen .............................................. R2.18 Das Datum beweglicher Feiertage berechnen ................................. R2.19 Ersten und letzten Wochentag des Monats ermitteln ........................... R2.20 Abschreibungen auf Monatsbasis berechnen .................................. R2.21 Reisespesen berechnen ....................................................... R2.22 Geldbeträge kaufmännisch runden ............................................ R2.23 Fehler bei mathematischen Operationen behandeln ............................ 43 43 49 51 53 56 57 59 61 62 65 67 68 72 75 77 80 81 83 85 86 90 93 94 6 Inhaltsverzeichnis R2.24 R2.25 R2.26 R2.27 R2.28 R2.29 R2.30 R2.31 Mit Potenzen und Wurzeln rechnen .......................................... Einen Delegate definieren und anwenden ..................................... Mit Delegates sortieren (Bubblesort) ......................................... Referenz- oder Wertetypen als Parameter übergeben .......................... Die Syntax von LINQ-Abfragen verstehen .................................... Strings mit LINQ abfragen und filtern ........................................ Ein Zahlen-Array mit LINQ auswerten und sortieren .......................... Tipps & Tricks .............................................................. Die aktuelle Uhrzeit anzeigen ................................................ Die Uhrzeit als DateTime-Datentyp speichern ................................ Zahlen definiert runden ...................................................... Auf das letzte Zeichen im String testen ....................................... Die letzten Zeichen eines Strings abschneiden ................................ Leerzeichen aus einem String entfernen ...................................... Zur Laufzeit ein Array definieren ............................................. 99 100 102 105 108 112 113 116 116 117 117 117 117 118 118 3 Oberfläche ........................................................................ R3.1 Das Startformular festlegen .................................................. R3.2 Beim Programmstart eine Abfrage ausführen ................................. R3.3 Das Schließen des Formulars verhindern ..................................... R3.4 Mit mehreren Formularen arbeiten ........................................... R3.5 Eine MDI-Applikation erstellen .............................................. R3.6 Formulare im Formular anzeigen ............................................. R3.7 Zur Laufzeit ein Steuerelement erzeugen ..................................... R3.8 Steuerelemente-Array per Code erzeugen ..................................... R3.9 Auf ein Control-Array zugreifen ............................................. R3.10 Mit der TextBox arbeiten .................................................... R3.11 In einer TextBox suchen ..................................................... R3.12 Nur Zahleneingaben zulassen ................................................ R3.13 Dezimalkomma in Dezimalpunkt umwandeln ................................. R3.14 Tastatureingaben für mehrere TextBoxen filtern .............................. R3.15 RadioButtons und CheckBoxen einsetzen ..................................... R3.16 Die ListBox kennen lernen ................................................... R3.17 Die ComboBox kennen lernen ............................................... R3.18 Objekte in ListBox/ComboBox anzeigen ..................................... R3.19 Mit der CheckedListBox arbeiten ............................................ R3.20 Die Maus abfragen .......................................................... R3.21 Das TableLayoutPanel einsetzen ............................................. 119 119 120 122 123 128 131 134 136 138 141 143 145 147 148 150 152 155 158 161 164 165 7 Inhaltsverzeichnis R3.22 R3.23 R3.24 R3.25 R3.26 R3.27 R3.28 R3.29 R3.30 R3.31 Mit einem Kontextmenü arbeiten ............................................. Einfache Datenbindung praktizieren .......................................... Anwendungseinstellungen an Steuerelemente binden ......................... 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 ............................. 170 172 175 179 183 186 189 194 196 200 4 Grafikprogrammierung ......................................................... R4.1 Ein Graphics-Objekt erzeugen ............................................... Variante 1: Verwendung des Paint-Events .................................... Variante 2: Überschreiben der OnPaint-Methode .............................. Variante 3: Graphics-Objekt mit CreateGraphics erzeugen .................... Variante 4: Verwendung des Graphics-Objekts einer PictureBox .............. R4.2 Verbundene Linien und Pfeile zeichnen ...................................... R4.3 Eine gemusterte Linie zeichnen .............................................. R4.4 Rechtecke und Ellipsen zeichnen ............................................. R4.5 Rechtecke mit runden Ecken zeichnen ........................................ R4.6 Transparente Farben verwenden .............................................. R4.7 Ein Tortendiagramm zeichnen ............................................... R4.8 Die Grafikdialoge richtig einsetzen ........................................... R4.9 Ein Control-Array mit Grafiken ausstatten .................................... R4.10 Einen grafischen Würfel programmieren ...................................... R4.11 Den Abstand zwischen zwei Punkten berechnen .............................. R4.12 Ein Balkendiagramm zeichnen ............................................... R4.13 Das Mischen von Farbwerten verstehen ...................................... R4.14 Eine Verkehrsampel programmieren ......................................... R4.15 Eine 2D-Vektorgrafik manipulieren .......................................... R4.16 Geometrische Transformationen durchführen ................................. R4.17 Eine Grafik scrollen ......................................................... R4.18 Eine Bitmap erzeugen und als Datei speichern ................................ R4.19 Eine Metafilegrafik erzeugen und speichern .................................. R4.20 Einen Fenster-Screenshot erzeugen ........................................... R4.21 Einen Desktop-Screenshot realisieren ........................................ R4.22 Auf dem Windows-Desktop zeichnen ........................................ 207 207 207 208 209 210 210 212 213 215 216 217 219 221 224 227 229 234 238 242 247 250 251 252 253 256 258 8 Inhaltsverzeichnis R4.23 R4.24 R4.25 R4.26 R4.27 R4.28 R4.29 R4.30 R4.31 R4.32 R4.33 R4.34 R4.35 R4.36 R4.37 R4.38 R4.39 R4.40 R4.41 R4.42 R4.43 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 ................................................. 260 263 264 265 266 267 269 270 271 273 274 277 278 280 282 283 286 288 295 297 301 5 Drucker/Drucken ................................................................ R5.1 Mit Visual Basic drucken .................................................... R5.2 Den Windows Standard-Drucker ermitteln .................................... R5.3 Den Windows Standard-Drucker ändern ...................................... R5.4 Die verfügbaren Drucker ermitteln ........................................... R5.5 Einen Drucker auswählen .................................................... R5.6 Papierformate und Seitenabmessungen bestimmen ............................ R5.7 Den physikalischen Druckbereich ermitteln ................................... R5.8 Die aktuelle Seitenausrichtung ermitteln ...................................... R5.9 Testen ob es sich um einen Farbdrucker handelt ............................... R5.10 Die physikalische Druckauflösung abfragen .................................. R5.11 Prüfen, ob beidseitiger Druck möglich ist ..................................... R5.12 Einen Informationsgerätekontext erzeugen .................................... R5.13 Drucken in Millimetern ...................................................... R5.14 Die Seitenränder für den Druck festlegen ..................................... R5.15 Den Druckjobnamen festlegen ............................................... 305 305 306 307 308 309 311 312 314 314 314 316 316 318 319 322 9 Inhaltsverzeichnis R5.16 R5.17 R5.18 R5.19 R5.20 R5.21 R5.22 R5.23 R5.24 R5.25 R5.26 R5.27 R5.28 R5.29 R5.30 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-Formulare füllen und drucken ........................... Mit Microsoft Access drucken ............................................... Die Drucker-Konfiguration anzeigen ......................................... Diverse Druckereigenschaften bestimmen .................................... Dokumente mit dem Internet Explorer drucken ............................... Einen Drucker anhalten ...................................................... 322 322 323 328 331 332 335 337 347 350 354 357 358 360 362 6 OOP/Komponenten ............................................................. R6.1 Überladene/überschriebene Methoden vergleichen ............................ R6.2 Aggregation und Vererbung gegenüberstellen ................................. R6.3 Objekte serialisieren ......................................................... R6.4 Ein wieder verwendbares Formular erstellen .................................. R6.5 Von einem Formular erben ................................................... R6.6 Von vorhandenen Steuerelementen erben ..................................... R6.7 Eine Komponente zur Farbauswahl entwickeln ............................... R6.8 Eine Digitalanzeige-Komponente programmieren ............................. R6.9 OOP beim Kartenspiel erlernen .............................................. R6.10 Eine Klasse zur Matrizenrechnung entwickeln ................................ 365 365 368 375 378 381 386 390 396 401 406 7 Kleiner OOP-Crashkurs ......................................................... R7.1 Klassen und Objekte verstehen ............................................... R7.2 Einen eigenen Konstruktor implementieren ................................... R7.3 Eigenschaften kapseln ....................................................... R7.4 Vererbung und Polymorphie anwenden ....................................... R7.5 Ereignisse programmieren ................................................... R7.6 Das Observer-Pattern demonstrieren .......................................... R7.7 Multicast-Events verwenden ................................................. R7.8 Das Microsoft Event Pattern implementieren ................................. 413 413 418 420 424 432 435 446 448 10 Inhaltsverzeichnis 8 Dateien/Verzeichnisse .......................................................... R8.1 Mit den Dateidialogen auf eine Textdatei zugreifen ........................... R8.2 Alle Unterverzeichnisse auflisten ............................................. R8.3 Alle Dateien auflisten ........................................................ R8.4 Die GetFileSystemInfos-Methode einsetzen .................................. R8.5 Die Path-Klasse kennen lernen ............................................... R8.6 Verzeichnis- und Datei-Informationen gewinnen .............................. R8.7 Änderungen im Dateisystem überwachen ..................................... R8.8 Dateien rekursiv suchen ...................................................... R8.9 Eine sequenzielle Datei lesen und schreiben .................................. R8.10 Serialisierte Objekte in einer Datei abspeichern ............................... R8.11 Den Inhalt einer ListView als Datei abspeichern .............................. R8.12 Den Verzeichnisinhalt in einer ListView anzeigen ............................ R8.13 Einen Verzeichnisbaum in eine TreeView einlesen ............................ R8.14 Eine Datei verschlüsseln ..................................................... R8.15 Eine Datei komprimieren .................................................... R8.16 Die vorhandenen Laufwerke feststellen ....................................... R8.17 Datei-Ladefortschritt mit ProgressBar anzeigen ............................... 455 455 459 460 462 463 464 468 471 474 477 482 487 489 492 495 497 498 9 XML ................................................................................ R9.1 DataSets in Xml-Strings konvertieren ........................................ R9.2 DataSets in XML-Dateien speichern .......................................... R9.3 In Dokumenten mit dem XPathNavigator navigieren .......................... R9.4 In Dokumenten mit XElement/XDocument navigieren ........................ R9.5 In Dokumenten mit dem XPathNavigator suchen ............................. R9.6 Hierarchische XML-Daten in einer TreeView darstellen ....................... R9.7 XML-Daten mit dem XmlReader lesen ....................................... R9.8 XML-Daten mit LINQ to XML einlesen/filtern ............................... R9.9 XML-Daten mit dem XmlWriter erzeugen .................................... R9.10 XML-Dokumente mit LINQ to XML erzeugen ............................... R9.11 Verzeichnisstruktur als XML-Dokument sichern .............................. R9.12 Binäre Daten in einem XML-Dokument speichern ............................ R9.13 Objektstrukturen im XML-Format sichern .................................... R9.14 XML-Dokumente mit XSLT transformieren .................................. R9.15 XML-Dokumente mit LINQ transformieren .................................. R9.16 XML-Daten mit XmlDataDocument bearbeiten ............................... R9.17 XML-Daten in SQL Server-Tabellen speichern ............................... R9.18 XML-Dokumente in Webanwendungen anzeigen ............................. 501 501 505 508 513 518 521 525 528 530 532 534 536 539 545 547 549 552 554 Inhaltsverzeichnis 10 ADO.NET .......................................................................... R10.1 Auf eine Access-Datenbank zugreifen ........................................ R10.2 Auf den SQL Server zugreifen ............................................... R10.3 ConnectionString in Konfigurationsdatei ablegen ............................. R10.4 Den DataReader kennen lernen ............................................... R10.5 Minimaler DB-Client für Lese- und Schreibzugriff ............................ R10.6 Schemainformationen verwenden ............................................ R10.7 Query Notifications verwenden ............................................. R10.8 Mit einer Datenquelle arbeiten ............................................... R10.9 Eine Aktionsabfrage ausführen ............................................... R10.10 Daten direkt hinzufügen oder löschen ........................................ R10.11 Gespeicherte Prozeduren aufrufen ............................................ R10.12 Eine Access-Auswahlabfrage aufrufen ....................................... R10.13 Parametrierte Abfragen unter MS Access ausführen ........................... R10.14 Parametrierte Abfragen für SQL Server ausführen ............................ R10.15 Datumswerte in SQL-Anweisungen einbauen ................................. R10.16 Die Datenbank manuell aktualisieren ........................................ R10.17 Die Datenbank mit CommandBuilder aktualisieren ........................... R10.18 Mit Stapel-Abfragen arbeiten ................................................ R10.19 RowUpdating-/RowUpdated-Ereignisse verwenden ........................... R10.20 MARS kennen lernen ........................................................ R10.21 Auf Zeilen und Spalten der DataTable zugreifen .............................. R10.22 Eine ListBox an einen DataView binden ...................................... R10.23 Das DataGridView mit ComboBoxen ausrüsten .............................. R10.24 Auf eine einzelne Zeile im DataGridView zugreifen .......................... R10.25 DataTable erzeugen und in Binärdatei speichern .............................. R10.26 Eine DataTable in einer XML-Datei abspeichern .............................. R10.27 Die RemotingFormat-Property des DataSets nutzen ........................... R10.28 Master-Detail-Beziehungen im DataGrid anzeigen ............................ R10.29 Im DataView sortieren und filtern ............................................ R10.30 Im DataView nach Datensätzen suchen ....................................... R10.31 Zwischen DataTable und DataReader umwandeln ............................ R10.32 Steuerelemente manuell an ein DataSet binden ............................... R10.33 Datensätze im Detail-Formular editieren ...................................... R10.34 Tabellen mittels ComboBox verknüpfen ..................................... R10.35 Spalten und Zeilen im DataGridView formatieren ............................ R10.36 DataReader in einer ListView anzeigen ....................................... 11 559 559 562 564 567 569 571 575 580 586 588 591 594 597 598 600 603 607 608 610 613 617 619 621 624 627 631 633 636 639 641 643 645 651 657 661 664 12 Inhaltsverzeichnis R10.37 R10.38 R10.39 R10.40 R10.41 Bilder aus der Datenbank anzeigen ........................................... Ein ungebundenes DataSet erzeugen ......................................... Ein typisiertes DataSet im Designer erzeugen ................................. Ein typisiertes DataSet befüllen .............................................. Eine LINQ to SQL-Abfrage realisieren ....................................... 667 669 673 676 678 11 Reporting Services .............................................................. R11.1 Einen einfachen Bericht entwerfen ........................................... R11.2 Einen Bericht ohne Assistentenhilfe erstellen ................................. R11.3 Im Bericht sortieren .......................................................... R11.4 Im Bericht filtern ............................................................ R11.5 Im Bericht gruppieren ....................................................... R11.6 Weitere Tipps & Tricks ...................................................... Unterstreichungslinie in Tabelle .............................................. Währungsformatierung ...................................................... Wechselnde Zeilenfarbe ..................................................... Anzeige von True und False in Booleschen Feldern vermeiden ................ Anzeige von Nullwerten unterdrücken ........................................ Die lästigen Sekunden beseitigen ............................................. Abstand zwischen zwei Tabellenspalten vergrößern ........................... Nachkommastellen festlegen ................................................. Berechnen und formatieren .................................................. Unterdrücken von Kopf- und Fußzeilen auf der ersten Seite ................... Seitenzahlen in den Report einfügen .......................................... Datumsformatierung ......................................................... Anzeigen variabler Daten in einem Seitenkopf oder -fuß ...................... 683 683 687 690 695 698 702 702 703 703 703 704 704 704 704 704 704 705 705 705 12 ASP.NET/Webdienste ........................................................... R12.1 Eine einfache Webanwendung erstellen ...................................... R12.2 Tabellen mit der Table-Komponente erstellen ................................. R12.3 Daten zwischen Web Forms austauschen ..................................... R12.4 Informationen über den Browser ermitteln .................................... R12.5 Die Bildschirmauflösung des Clients ermitteln ................................ R12.6 Das Browser-Fenster maximieren ............................................ R12.7 Cookies in ASP.NET-Anwendungen verwenden .............................. R12.8 HTML-Ausgaben an den Client senden ....................................... R12.9 Bilder/Dateien an den Client senden .......................................... R12.10 Die IP-Adresse des Clients abfragen .......................................... 707 707 713 720 723 725 727 728 730 732 733 Inhaltsverzeichnis R12.11 Die Anzahl der Seitenaufrufe eines Users ermitteln ........................... R12.12 Auf den Fehlercode 404 reagieren ............................................ Variante 1: Alternative Fehlerseite einblenden ................................ Variante 2: Zentrale Fehlerbehandlung ....................................... R12.13 Die Validierung temporär deaktivieren ....................................... R12.14 Den Eingabefokus bei Validierung setzen ..................................... R12.15 Eine clientseitige Validierung realisieren ..................................... R12.16 Die Zellen in einem GridView formatieren ................................... R12.17 Ein GridView mit Bildlaufleisten realisieren .................................. R12.18 Einen Mouseover-Effekte im GridView realisieren ............................ R12.19 Keine Daten im GridView vorhanden ........................................ R12.20 Daten einfach ins MS Excel-Format exportieren .............................. R12.21 Berechnungen in GridView-Zeilen realisieren ................................ R12.22 Spaltensummen im GridView berechnen ..................................... R12.23 Währungswerte im GridView korrekt anzeigen ............................... R12.24 Eine Validierung im GridView realisieren .................................... R12.25 Mit einem Popup-Fenster Detaildaten anzeigen ............................... R12.26 Eine Sicherheitsabfrage realisieren ........................................... R12.27 E-Mail-Versand in ASP.NET realisieren ...................................... R12.28 Verzeichnisbäume mit der TreeView anzeigen ................................ R12.29 Datenaustausch zwischen ClientScript und Server ............................. R12.30 Dateien auf den Server hochladen ............................................ R12.31 Ein ASP.NET-Menü dynamisch erzeugen .................................... R12.32 Die Browser-Kopfzeile zur Laufzeit ändern ................................... R12.33 Einen Zeilenumbruch im Label-Control realisieren ............................ R12.34 HTML-Zeichenfolgen im Browser anzeigen .................................. R12.35 Die Browser-Scrollposition wiederherstellen .................................. R12.36 Dateien eines Unterverzeichnisses auflisten ................................... R12.37 MouseOver-Effekte für Controls realisieren .................................. R12.38 Server Controls zur Laufzeit erzeugen ........................................ R12.39 Doppelklicks auf Schaltflächen verhindern ................................... R12.40 Das Browserfenster per Client-Skript schließen ............................... R12.41 Ein ASP.NET User Control programmieren .................................. R12.42 Grafikausgaben per User Control realisieren .................................. R12.43 Die Upload-Begrenzung ändern .............................................. R12.44 Eine Webseite per JavaScript drucken ........................................ R12.45 Ein Projekt auf den IIS exportieren ........................................... 13 734 735 736 737 738 738 738 739 741 742 743 744 747 749 751 751 754 758 759 761 764 766 767 769 769 770 771 772 774 775 777 779 780 784 787 788 789 14 Inhaltsverzeichnis R12.46 R12.47 R12.48 R12.49 Ärger mit den Cookies vermeiden ............................................ Einen XML-Webdienst programmieren ...................................... Einen Webdienst-Client erstellen ............................................. Datenbankzugriffe mit Webdiensten realisieren ............................... Webdienst entwerfen ........................................................ Service-Client (Windows Forms) ............................................. Service-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 ................................... Die neuen AJAX-Controls verwenden ........................................ Tipps & Tricks .............................................................. Ärger mit Leerzeichen in URLs vermeiden ................................... Testen, ob Nutzer angemeldet ist ............................................. Den Namen des aktuellen Nutzers ermitteln .................................. Eine zufällige Datei zur Anzeige auswählen .................................. Einen Datei speichern unter...-Dialog anzeigen lassen ......................... Anwendungseinstellungen in der Web.config sichern ......................... 791 792 797 802 802 809 814 818 819 820 820 821 822 824 827 827 827 827 828 829 830 13 Windows Presentation Foundation ........................................... R13.1 WPF-Anwendung im Fullscreen-Mode starten ................................ R13.2 Fenster auf einem bestimmten Screen anzeigen ............................... R13.3 Das Hauptfenster festlegen und ändern ....................................... R13.4 Einen Splash-Screen erzeugen und anzeigen .................................. R13.5 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 .......................................... R13.6 WPF-Oberflächen zur Laufzeit erzeugen ..................................... 831 831 832 834 835 837 838 839 840 841 843 844 846 846 847 848 R12.50 R12.51 R12.52 R12.53 R12.54 R12.55 15 Inhaltsverzeichnis R13.7 R13.8 R13.9 R13.10 R13.11 R13.12 R13.13 R13.14 R13.15 R13.16 R13.17 R13.18 R13.19 R13.20 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 ......................................... Einfache Zeichnungen zur Laufzeit ausgeben ................................. Programmparameter auswerten ............................................... Ein Video anzeigen und steuern .............................................. Schatteneffekt für Controls realisieren ........................................ Eine TextBox beim Fokuserhalt optisch markieren ............................ Den TextBox-Inhalt beim Fokuserhalt markieren ............................. 851 853 855 858 859 861 862 863 865 868 870 873 875 877 14 System ............................................................................ R14.1 Nutzer und Gruppen des Systems ermitteln ................................... R14.2 Testen, ob Nutzer in einer Gruppe enthalten ist ............................... R14.3 Testen, ob der Nutzer ein Administrator ist ................................... R14.4 Die IP-Adressen des Computers bestimmen .................................. R14.5 Die IP-Adresse über den Hostnamen bestimmen .............................. R14.6 Diverse Systeminformationen ermitteln ....................................... Betriebssystem (Name, Version, Bootmode) .................................. Schriftarten/-Informationen .................................................. Bildschirme ................................................................. Netzwerk (User-Name, PC-Name ...) ......................................... Environment Variablen auslesen ............................................. Energiestatus ................................................................ Hardware-Informationen ..................................................... Anwendung (Pfad, Name, Assemblies) ....................................... Soundkarte(n) ............................................................... CLR-Version ................................................................ R14.7 Alles über den Bildschirm erfahren ........................................... R14.8 Die Registrierdatenbank verwenden .......................................... R14.9 Eine verknüpfte Anwendung öffnen .......................................... R14.10 Eine Dateiverknüpfung erzeugen ............................................. R14.11 Den Computer herunterfahren oder neu starten ................................ Variante 1 (ExitWindowsEx) ................................................. 879 879 881 882 883 884 885 886 887 888 889 890 891 891 892 894 894 895 896 900 900 902 903 16 Inhaltsverzeichnis 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 ............................................ 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 ............................. 905 907 908 908 909 911 912 915 918 919 921 922 924 925 927 928 929 930 932 935 936 939 942 942 944 945 951 953 15 Sonstiges ......................................................................... R15.1 Eine einfache E-Mail versenden .............................................. R15.2 EMails mit dem integrierten Mail-Client versenden ........................... R15.3 Logische Fehler mittels Debugger aufspüren .................................. R15.4 Eigene Fehlerklassen definieren .............................................. R15.5 Die MessageBox-Klasse verwenden .......................................... R15.6 Nur eine Anwendungsinstanz zulassen ....................................... R15.7 Die Anwendungsparameter auswerten ........................................ R15.8 Die Zwischenablage verwenden .............................................. 957 957 958 960 967 969 971 973 975 R14.12 R14.13 R14.14 R14.15 R14.16 R14.17 R14.18 R14.19 R14.20 R14.21 R14.22 R14.23 R14.24 R14.25 R14.26 R14.27 R14.28 R14.29 R14.30 R14.31 R14.32 R14.33 R14.34 R14.35 R14.36 R14.37 R14.38 17 Inhaltsverzeichnis R15.9 R15.10 R15.11 R15.12 R15.13 R15.14 R15.15 R15.16 R15.17 R15.18 R15.19 R15.20 R15.21 R15.22 R15.23 R15.24 R15.25 Tastaturbefehle senden ....................................................... Mittels Reflection Typinformationen sammeln ................................ Ressourcen per Reflection auslesen ........................................... Client/Server-Anwendung mit zwei Projekten ................................ Eine Windows Form-Anwendung lokalisieren ................................ Eine Assembly dynamisch einbinden ......................................... Den .NET-Reflector verwenden .............................................. Eine GUID erzeugen ........................................................ Bytes in MByte umrechnen .................................................. Einen String verschlüsseln ................................................... Die Verwendung von DoEvents verstehen .................................... Eine Pause realisieren ........................................................ Hilfedateien programmieren ................................................. Hilfedateien in die VB-Anwendung einbinden ................................ Eine alternative Hilfe-IDE verwenden ....................................... Installationsdateien erzeugen ................................................. Eine farbige Konsolenanwendung realisieren ................................. 977 981 983 986 990 994 997 999 1000 1001 1003 1006 1007 1011 1016 1017 1026 16 Komplexbeispiele ................................................................ R16.1 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 .............................................. R16.2 Buchungssystem mit Random Access Datei .................................. Klassenübersicht ............................................................ Entwurf der Bedienoberfläche ............................................... Entwicklung des Geschäftsmodells .......................................... Programmieren der Bedienoberfläche ........................................ Programmtest ............................................................... R16.3 Ein einfacher FTP-Client .................................................... Bedienoberfläche ............................................................ Auflisten des FTP-Verzeichnisses ............................................ 1029 1029 1029 1030 1031 1034 1035 1038 1041 1042 1046 1047 1047 1047 1048 1057 1060 1061 1062 1062 18 Inhaltsverzeichnis 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 .................................................... Bedienoberflä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 ................................................... Funktionsverlauf grafisch darstellen .......................................... Digitalvoltmeter an RS232 ................................................... 1063 1065 1066 1067 1068 1069 1069 1071 1072 1076 1079 1079 1080 1083 1084 1086 1087 1088 1093 1097 Anhang ............................................................................ A: Glossar ...................................................................... B: Wichtige Datei-Extensions ................................................... C: ANSI-Tabelle ............................................................... 1103 1103 1107 1108 Index 1111 R16.4 R16.5 R16.6 R16.7 ..............................................................................