Upload
trinhtuyen
View
223
Download
4
Embed Size (px)
Citation preview
LeseprobeWenn Sie auf schnelle und praktische Weise lernen moumlchten wie Sie Windows-Programme mit C entwickeln sind Sie hier genau richtig Dieser Buchauszug zeigt wie Sie Visual Studio installieren und fuumlr Ihre Projekte einrichten Auszligerdem machen Sie sich mit Variablen und Operatoren vertraut
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
raquoVisual Studio 2017 installierenlaquo raquoVariablen Operatoren Steuerelementelaquo raquoLoumlsungen der Uumlbungsaufgabenlaquo
Inhaltsverzeichnis
Index
Der Autor
Leseprobe weiterempfehlen
Wissen wiersquos geht
15
1Kapitel 1
Einfuumlhrung
In diesem Kapitel erlernen Sie anhand eines ersten Projekts den Umgang
mit der Entwicklungsumgebung und den Steuerelementen Anschlieszligend
werden Sie in der Lage sein Ihr erstes eigenes Windows-Programm zu
erstellen
CC ist eine objektorientierte Programmiersprache die von Microsoft im
Zusammenhang mit dem NET Framework eingefuumlhrt wurde Mithilfe der
Entwicklungsumgebung Visual Studio 2017 koumlnnen Sie u a in der Sprache
C programmieren Visual Studio 2017 ist der Nachfolger von Visual Studio
2015 Innerhalb von Visual Studio stehen Ihnen noch weitere Sprachen zur
Programmentwicklung zur Verfuumlgung
11 Aufbau dieses Buchs
BeispieleDieses Buch vermittelt Ihnen zunaumlchst einen einfachen Einstieg in die Pro-
grammierung mit C und Visual Studio 2017 Die Bearbeitung der Beispiele
und das selbststaumlndige Loumlsen der vorliegenden Uumlbungsaufgaben helfen da-
bei Dadurch werden Sie schnell erste Erfolgserlebnisse haben die Sie zum
Weitermachen motivieren In spaumlteren Kapiteln werden Ihnen anschlie-
szligend auch komplexere Themen vermittelt
GrundlagenVon Anfang an wird mit anschaulichen Windows-Anwendungen gearbei-
tet Die Grundlagen der Programmiersprache und die Standardelemente
einer Windows-Anwendung wie Sie sie bereits von anderen Windows-Pro-
grammen her kennen werden gemeinsam vermittelt Die Anschaulichkeit
einer Windows-Anwendung hilft dabei den eher theoretischen Hinter-
grund der Programmiersprache leichter zu verstehen
4493book Seite 15 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
16
12 Visual Studio 2017
Community-Version Fuumlr dieses Buch wird die frei verfuumlgbare Entwicklungsumgebung Visual
Studio Community 2017 eingesetzt Sie koumlnnen sie unter Windows 7 bis ein-
schlieszliglich Windows 10 nutzen Diese Version von Visual Studio koumlnnen
Sie bei Microsoft herunterladen (wwwvisualstudiocomde-de) und auf Ih-
rem PC installieren Eine Installationsanleitung finden Sie im Anhang Die
Projekte in diesem Buch wurden unter Windows 10 bearbeitet Auch die
Screenshots sind unter dieser Windows-Version entstanden
Visual Studio 2017 bietet eine komfortable Entwicklungsumgebung Sie
umfasst einen Editor zur Erstellung des Programmcodes einen Compiler
zur Erstellung der ausfuumlhrbaren Programme einen Debugger zur Fehler-
suche und vieles mehr
Noch eine Anmerkung in eigener Sache Fuumlr die Hilfe bei der Erstellung die-
ses Buchs bedanke ich mich beim Team des Rheinwerk Verlags besonders
bei Anne Scheibe
Thomas Theis
13 Mein erstes Windows-Programm
Anhand eines ersten Projekts werden Sie nun die verschiedenen Schritte
durchlaufen die zur Erstellung eines einfachen Programms mit C in Visu-
al Studio notwendig sind Das Programm soll nach dem Aufruf zunaumlchst so
aussehen wie in Abbildung 11 gezeigt
Abbildung 11 Erstes Programm nach dem Aufruf
Nach Betaumltigung des Buttons Hallo soll sich der Text in der obersten Zeile
entsprechend veraumlndern (siehe Abbildung 12)
4493book Seite 16 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
17
1
Abbildung 12 Nach einem Klick auf den Button raquoHallolaquo
14 Visual Studio-Entwicklungsumgebung
Waumlhrend der Projekterstellung werden Sie die Visual Studio-Entwicklungs-
umgebung Schritt fuumlr Schritt kennenlernen
141 Ein neues Projekt
Nach dem Aufruf des Programms Visual Studio Community 2017 muumlssen
Sie zur Erstellung eines neuen C-Projekts den Menuumlpunkt Datei bull Neu bull
Projekt ausfuumlhren Anschlieszligend waumlhlen Sie in der Kategorie Instal-
liert bull Vorlagen bull Visual C die Vorlage Windows Forms-App aus Als
Projektname bietet die Entwicklungsumgebung den Namen Windows-
FormsApp1 an dieser sollte geaumlndert werden zum Beispiel in MeinErstes
Nach Betaumltigung der Schaltflaumlche OK erscheinen nun einige Elemente der
Entwicklungsumgebung Folgende sind besonders wichtig
Form Das Benutzerformular (engl Form) enthaumllt die Oberflaumlche fuumlr den Benut-
zer des Programms (siehe Abbildung 13)
Abbildung 13 Benutzerformular
Toolbox Der Werkzeugkasten (engl Toolbox) enthaumllt die Steuerelemente fuumlr
den Benutzer mit denen er den Ablauf des Programms steuern kann Sie
4493book Seite 17 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
18
werden vom Programmentwickler in das Formular eingefuumlgt (siehe Ab-
bildung 14) Sollten in der Toolbox keine Steuerelemente angezeigt wer-
den klicken Sie einmal auf das Benutzerformular und anschlieszligend wie-
der auf die Toolbox Weitere Registerkarten zum Beispiel Server-
Explorer und Datenquellen werden nicht benoumltigt und koumlnnen je-
weils uumlber das Kreuz oben rechts ausgeblendet werden
Abbildung 14 Der raquoWerkzeugkastenlaquo mit verschiedenen
Kategorien von Steuerelementen
Eigenschaften-
Fenster
Das Eigenschaften-Fenster (engl Properties Window) dient dem An-
zeigen und Aumlndern der Eigenschaften von Steuerelementen innerhalb
des Formulars durch den Programmentwickler (siehe Abbildung 15) Ich
empfehle Ihnen sich die Eigenschaften in alphabetischer Reihenfolge
anzeigen zu lassen Betaumltigen Sie dazu einfach unter Form1 das zweite
Symbol von links
Abbildung 15 Eigenschaften-Fenster
Projektmappen-
Explorer
Der Projektmappen-Explorer (engl Solution Explorer) zeigt das geoumlff-
nete Projekt und die darin vorhandenen Elemente (siehe Abbildung 16)
4493book Seite 18 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
19
1
Abbildung 16 Projektmappen-Explorer
Elemente anzeigenSollte der Werkzeugkasten das Eigenschaften-Fenster oder der Pro-
jektmappen-Explorer nicht angezeigt werden koumlnnen Sie das betreffen-
de Element uumlber das Menuuml Ansicht einblenden Ist das Formular nicht
sichtbar blenden Sie es einfach uumlber einen Doppelklick auf den Namen
(Form1cs) im Projektmappen-Explorer ein Sollten die Eigenschaften
eines Steuerelements nicht im bereits sichtbaren Eigenschaften-Fenster
angezeigt werden markieren Sie zunaumlchst den Namen der Formulardatei
(Form1cs) im Projektmappen-Explorer und anschlieszligend das betref-
fende Steuerelement
Anfangs schreiben Sie nur einfache Programme mit wenigen Elementen
daher benoumltigen Sie den Projektmappen-Explorer jetzt noch nicht Es
empfiehlt sich das Eigenschaften-Fenster nach oben zu vergroumlszligern
142 Einfuumlgen von Steuerelementen
Label ButtonZunaumlchst sollen drei Steuerelemente in das Formular eingefuumlgt werden
ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflaumlchen (Buttons) Ein
Bezeichnungsfeld dient im Allgemeinen dazu feste oder veraumlnderliche
Texte auf der Benutzeroberflaumlche anzuzeigen In diesem Programm soll
das Label einen Text anzeigen Ein Button dient zum Starten bestimmter
Programmteile oder allgemeiner ausgedruumlckt zum Ausloumlsen von Ereignis-
sen In diesem Programm sollen die Buttons dazu dienen den Text anzu-
zeigen bzw das Programm zu beenden
Allgemeine
Steuerelemente
Um ein Steuerelement einzufuumlgen ziehen Sie es mithilfe der Maus aus
dem Werkzeugkasten an die gewuumlnschte Stelle im Formular Alle Steuer-
elemente finden sich im Werkzeugkasten unter Alle Windows Forms
4493book Seite 19 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
20
Uumlbersichtlicher ist jedoch der Zugriff uumlber Allgemeine Steuerelemente
(engl Common Controls) siehe Abbildung 17
Abbildung 17 raquoAllgemeine Steuerelementelaquo im raquoWerkzeugkastenlaquo
Steuerelement
auswaumlhlen
Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fuumlgt es
ebenfalls in die Form ein Position und Groumlszlige des Elements koumlnnen an-
schlieszligend noch veraumlndert werden Dazu waumlhlen Sie das betreffende
Steuerelement vorher durch Anklicken aus (siehe Abbildung 18) Ein uumlber-
fluumlssiges Steuerelement koumlnnen Sie durch Auswaumlhlen und Druumlcken der
Taste (Entf) entfernen
Abbildung 18 Ausgewaumlhlter Button
Die Groumlszlige und andere Eigenschaften des Formulars selbst koumlnnen Sie
ebenfalls veraumlndern Dazu waumlhlen Sie es vorher durch Anklicken einer frei-
en Stelle im Formular aus
143 Arbeiten mit dem Eigenschaften-Fenster
Die eingefuumlgten Steuerelemente haben zunaumlchst einheitliche Namen und
Aufschriften diese sollten Sie allerdings zur einfacheren Programment-
wicklung aumlndern Es gibt bestimmte Namenskonventionen die die Les-
barkeit erleichtern Die Namen beinhalten den Typ (mit drei Buchstaben
abgekuumlrzt) und die Aufgabe des Steuerelements (jeweils mit groszligem An-
4493book Seite 20 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
21
1fangsbuchstaben) Aus den Namen der Steuerelemente ergeben sich auch
die Namen der sogenannten Ereignisprozeduren ebenfalls mit groszligem
Anfangsbuchstaben siehe Abschnitt 145 Seit Visual Studio 2017 wird staumlr-
ker auf die Einhaltung der Namenskonventionen geachtet
Cmd Txt Lbl Ein Button (eigentlich Command Button) der die Anzeige der Zeit ausloumlsen
soll wird beispielsweise mit CmdZeit bezeichnet Weitere Vorsilben sind Txt
(TextfeldTextBox) Lbl (BezeichnungsfeldLabel) Opt (Optionsschalt-
flaumlcheRadioButton) Frm (FormularForm) und Chk (Kontrollkaumlstchen
CheckBox)
Zur Aumlnderung des Namens eines Steuerelements muss es zunaumlchst ausge-
waumlhlt werden Das koumlnnen Sie entweder durch Anklicken des Steuerele-
ments auf dem Formular oder durch Auswahl desselben aus der Liste am
oberen Ende des Eigenschaften-Fensters tun
Eigenschaften-
Fenster
Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewaumlhlten
Steuerelements angezeigt Die Liste ist zweispaltig In der linken Spalte
steht der Name der Eigenschaft in der rechten ihr aktueller Wert Die Eigen-
schaft (Name) steht am Anfang der Liste der Eigenschaften Die betreffende
Zeile waumlhlen Sie durch Anklicken aus und geben hier den neuen Namen
ein Nach Bestaumltigung mit der Taste (cent) ist die Eigenschaft geaumlndert (siehe
Abbildung 19)
Abbildung 19 Button nach der Namensaumlnderung
TextDie Aufschrift von Buttons Labels und Formularen ist in der Eigenschaft
Text angegeben Sobald diese Eigenschaft veraumlndert wird erscheint die ver-
aumlnderte Aufschrift in dem betreffenden Steuerelement Auch der Name
und die Aufschrift des Formulars sollten geaumlndert werden Im Folgenden
sind die gewuumlnschten Eigenschaften fuumlr die Steuerelemente dieses Pro-
gramms in Tabellenform angegeben siehe Tabelle 11
4493book Seite 21 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
15
1Kapitel 1
Einfuumlhrung
In diesem Kapitel erlernen Sie anhand eines ersten Projekts den Umgang
mit der Entwicklungsumgebung und den Steuerelementen Anschlieszligend
werden Sie in der Lage sein Ihr erstes eigenes Windows-Programm zu
erstellen
CC ist eine objektorientierte Programmiersprache die von Microsoft im
Zusammenhang mit dem NET Framework eingefuumlhrt wurde Mithilfe der
Entwicklungsumgebung Visual Studio 2017 koumlnnen Sie u a in der Sprache
C programmieren Visual Studio 2017 ist der Nachfolger von Visual Studio
2015 Innerhalb von Visual Studio stehen Ihnen noch weitere Sprachen zur
Programmentwicklung zur Verfuumlgung
11 Aufbau dieses Buchs
BeispieleDieses Buch vermittelt Ihnen zunaumlchst einen einfachen Einstieg in die Pro-
grammierung mit C und Visual Studio 2017 Die Bearbeitung der Beispiele
und das selbststaumlndige Loumlsen der vorliegenden Uumlbungsaufgaben helfen da-
bei Dadurch werden Sie schnell erste Erfolgserlebnisse haben die Sie zum
Weitermachen motivieren In spaumlteren Kapiteln werden Ihnen anschlie-
szligend auch komplexere Themen vermittelt
GrundlagenVon Anfang an wird mit anschaulichen Windows-Anwendungen gearbei-
tet Die Grundlagen der Programmiersprache und die Standardelemente
einer Windows-Anwendung wie Sie sie bereits von anderen Windows-Pro-
grammen her kennen werden gemeinsam vermittelt Die Anschaulichkeit
einer Windows-Anwendung hilft dabei den eher theoretischen Hinter-
grund der Programmiersprache leichter zu verstehen
4493book Seite 15 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
16
12 Visual Studio 2017
Community-Version Fuumlr dieses Buch wird die frei verfuumlgbare Entwicklungsumgebung Visual
Studio Community 2017 eingesetzt Sie koumlnnen sie unter Windows 7 bis ein-
schlieszliglich Windows 10 nutzen Diese Version von Visual Studio koumlnnen
Sie bei Microsoft herunterladen (wwwvisualstudiocomde-de) und auf Ih-
rem PC installieren Eine Installationsanleitung finden Sie im Anhang Die
Projekte in diesem Buch wurden unter Windows 10 bearbeitet Auch die
Screenshots sind unter dieser Windows-Version entstanden
Visual Studio 2017 bietet eine komfortable Entwicklungsumgebung Sie
umfasst einen Editor zur Erstellung des Programmcodes einen Compiler
zur Erstellung der ausfuumlhrbaren Programme einen Debugger zur Fehler-
suche und vieles mehr
Noch eine Anmerkung in eigener Sache Fuumlr die Hilfe bei der Erstellung die-
ses Buchs bedanke ich mich beim Team des Rheinwerk Verlags besonders
bei Anne Scheibe
Thomas Theis
13 Mein erstes Windows-Programm
Anhand eines ersten Projekts werden Sie nun die verschiedenen Schritte
durchlaufen die zur Erstellung eines einfachen Programms mit C in Visu-
al Studio notwendig sind Das Programm soll nach dem Aufruf zunaumlchst so
aussehen wie in Abbildung 11 gezeigt
Abbildung 11 Erstes Programm nach dem Aufruf
Nach Betaumltigung des Buttons Hallo soll sich der Text in der obersten Zeile
entsprechend veraumlndern (siehe Abbildung 12)
4493book Seite 16 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
17
1
Abbildung 12 Nach einem Klick auf den Button raquoHallolaquo
14 Visual Studio-Entwicklungsumgebung
Waumlhrend der Projekterstellung werden Sie die Visual Studio-Entwicklungs-
umgebung Schritt fuumlr Schritt kennenlernen
141 Ein neues Projekt
Nach dem Aufruf des Programms Visual Studio Community 2017 muumlssen
Sie zur Erstellung eines neuen C-Projekts den Menuumlpunkt Datei bull Neu bull
Projekt ausfuumlhren Anschlieszligend waumlhlen Sie in der Kategorie Instal-
liert bull Vorlagen bull Visual C die Vorlage Windows Forms-App aus Als
Projektname bietet die Entwicklungsumgebung den Namen Windows-
FormsApp1 an dieser sollte geaumlndert werden zum Beispiel in MeinErstes
Nach Betaumltigung der Schaltflaumlche OK erscheinen nun einige Elemente der
Entwicklungsumgebung Folgende sind besonders wichtig
Form Das Benutzerformular (engl Form) enthaumllt die Oberflaumlche fuumlr den Benut-
zer des Programms (siehe Abbildung 13)
Abbildung 13 Benutzerformular
Toolbox Der Werkzeugkasten (engl Toolbox) enthaumllt die Steuerelemente fuumlr
den Benutzer mit denen er den Ablauf des Programms steuern kann Sie
4493book Seite 17 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
18
werden vom Programmentwickler in das Formular eingefuumlgt (siehe Ab-
bildung 14) Sollten in der Toolbox keine Steuerelemente angezeigt wer-
den klicken Sie einmal auf das Benutzerformular und anschlieszligend wie-
der auf die Toolbox Weitere Registerkarten zum Beispiel Server-
Explorer und Datenquellen werden nicht benoumltigt und koumlnnen je-
weils uumlber das Kreuz oben rechts ausgeblendet werden
Abbildung 14 Der raquoWerkzeugkastenlaquo mit verschiedenen
Kategorien von Steuerelementen
Eigenschaften-
Fenster
Das Eigenschaften-Fenster (engl Properties Window) dient dem An-
zeigen und Aumlndern der Eigenschaften von Steuerelementen innerhalb
des Formulars durch den Programmentwickler (siehe Abbildung 15) Ich
empfehle Ihnen sich die Eigenschaften in alphabetischer Reihenfolge
anzeigen zu lassen Betaumltigen Sie dazu einfach unter Form1 das zweite
Symbol von links
Abbildung 15 Eigenschaften-Fenster
Projektmappen-
Explorer
Der Projektmappen-Explorer (engl Solution Explorer) zeigt das geoumlff-
nete Projekt und die darin vorhandenen Elemente (siehe Abbildung 16)
4493book Seite 18 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
19
1
Abbildung 16 Projektmappen-Explorer
Elemente anzeigenSollte der Werkzeugkasten das Eigenschaften-Fenster oder der Pro-
jektmappen-Explorer nicht angezeigt werden koumlnnen Sie das betreffen-
de Element uumlber das Menuuml Ansicht einblenden Ist das Formular nicht
sichtbar blenden Sie es einfach uumlber einen Doppelklick auf den Namen
(Form1cs) im Projektmappen-Explorer ein Sollten die Eigenschaften
eines Steuerelements nicht im bereits sichtbaren Eigenschaften-Fenster
angezeigt werden markieren Sie zunaumlchst den Namen der Formulardatei
(Form1cs) im Projektmappen-Explorer und anschlieszligend das betref-
fende Steuerelement
Anfangs schreiben Sie nur einfache Programme mit wenigen Elementen
daher benoumltigen Sie den Projektmappen-Explorer jetzt noch nicht Es
empfiehlt sich das Eigenschaften-Fenster nach oben zu vergroumlszligern
142 Einfuumlgen von Steuerelementen
Label ButtonZunaumlchst sollen drei Steuerelemente in das Formular eingefuumlgt werden
ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflaumlchen (Buttons) Ein
Bezeichnungsfeld dient im Allgemeinen dazu feste oder veraumlnderliche
Texte auf der Benutzeroberflaumlche anzuzeigen In diesem Programm soll
das Label einen Text anzeigen Ein Button dient zum Starten bestimmter
Programmteile oder allgemeiner ausgedruumlckt zum Ausloumlsen von Ereignis-
sen In diesem Programm sollen die Buttons dazu dienen den Text anzu-
zeigen bzw das Programm zu beenden
Allgemeine
Steuerelemente
Um ein Steuerelement einzufuumlgen ziehen Sie es mithilfe der Maus aus
dem Werkzeugkasten an die gewuumlnschte Stelle im Formular Alle Steuer-
elemente finden sich im Werkzeugkasten unter Alle Windows Forms
4493book Seite 19 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
20
Uumlbersichtlicher ist jedoch der Zugriff uumlber Allgemeine Steuerelemente
(engl Common Controls) siehe Abbildung 17
Abbildung 17 raquoAllgemeine Steuerelementelaquo im raquoWerkzeugkastenlaquo
Steuerelement
auswaumlhlen
Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fuumlgt es
ebenfalls in die Form ein Position und Groumlszlige des Elements koumlnnen an-
schlieszligend noch veraumlndert werden Dazu waumlhlen Sie das betreffende
Steuerelement vorher durch Anklicken aus (siehe Abbildung 18) Ein uumlber-
fluumlssiges Steuerelement koumlnnen Sie durch Auswaumlhlen und Druumlcken der
Taste (Entf) entfernen
Abbildung 18 Ausgewaumlhlter Button
Die Groumlszlige und andere Eigenschaften des Formulars selbst koumlnnen Sie
ebenfalls veraumlndern Dazu waumlhlen Sie es vorher durch Anklicken einer frei-
en Stelle im Formular aus
143 Arbeiten mit dem Eigenschaften-Fenster
Die eingefuumlgten Steuerelemente haben zunaumlchst einheitliche Namen und
Aufschriften diese sollten Sie allerdings zur einfacheren Programment-
wicklung aumlndern Es gibt bestimmte Namenskonventionen die die Les-
barkeit erleichtern Die Namen beinhalten den Typ (mit drei Buchstaben
abgekuumlrzt) und die Aufgabe des Steuerelements (jeweils mit groszligem An-
4493book Seite 20 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
21
1fangsbuchstaben) Aus den Namen der Steuerelemente ergeben sich auch
die Namen der sogenannten Ereignisprozeduren ebenfalls mit groszligem
Anfangsbuchstaben siehe Abschnitt 145 Seit Visual Studio 2017 wird staumlr-
ker auf die Einhaltung der Namenskonventionen geachtet
Cmd Txt Lbl Ein Button (eigentlich Command Button) der die Anzeige der Zeit ausloumlsen
soll wird beispielsweise mit CmdZeit bezeichnet Weitere Vorsilben sind Txt
(TextfeldTextBox) Lbl (BezeichnungsfeldLabel) Opt (Optionsschalt-
flaumlcheRadioButton) Frm (FormularForm) und Chk (Kontrollkaumlstchen
CheckBox)
Zur Aumlnderung des Namens eines Steuerelements muss es zunaumlchst ausge-
waumlhlt werden Das koumlnnen Sie entweder durch Anklicken des Steuerele-
ments auf dem Formular oder durch Auswahl desselben aus der Liste am
oberen Ende des Eigenschaften-Fensters tun
Eigenschaften-
Fenster
Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewaumlhlten
Steuerelements angezeigt Die Liste ist zweispaltig In der linken Spalte
steht der Name der Eigenschaft in der rechten ihr aktueller Wert Die Eigen-
schaft (Name) steht am Anfang der Liste der Eigenschaften Die betreffende
Zeile waumlhlen Sie durch Anklicken aus und geben hier den neuen Namen
ein Nach Bestaumltigung mit der Taste (cent) ist die Eigenschaft geaumlndert (siehe
Abbildung 19)
Abbildung 19 Button nach der Namensaumlnderung
TextDie Aufschrift von Buttons Labels und Formularen ist in der Eigenschaft
Text angegeben Sobald diese Eigenschaft veraumlndert wird erscheint die ver-
aumlnderte Aufschrift in dem betreffenden Steuerelement Auch der Name
und die Aufschrift des Formulars sollten geaumlndert werden Im Folgenden
sind die gewuumlnschten Eigenschaften fuumlr die Steuerelemente dieses Pro-
gramms in Tabellenform angegeben siehe Tabelle 11
4493book Seite 21 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
16
12 Visual Studio 2017
Community-Version Fuumlr dieses Buch wird die frei verfuumlgbare Entwicklungsumgebung Visual
Studio Community 2017 eingesetzt Sie koumlnnen sie unter Windows 7 bis ein-
schlieszliglich Windows 10 nutzen Diese Version von Visual Studio koumlnnen
Sie bei Microsoft herunterladen (wwwvisualstudiocomde-de) und auf Ih-
rem PC installieren Eine Installationsanleitung finden Sie im Anhang Die
Projekte in diesem Buch wurden unter Windows 10 bearbeitet Auch die
Screenshots sind unter dieser Windows-Version entstanden
Visual Studio 2017 bietet eine komfortable Entwicklungsumgebung Sie
umfasst einen Editor zur Erstellung des Programmcodes einen Compiler
zur Erstellung der ausfuumlhrbaren Programme einen Debugger zur Fehler-
suche und vieles mehr
Noch eine Anmerkung in eigener Sache Fuumlr die Hilfe bei der Erstellung die-
ses Buchs bedanke ich mich beim Team des Rheinwerk Verlags besonders
bei Anne Scheibe
Thomas Theis
13 Mein erstes Windows-Programm
Anhand eines ersten Projekts werden Sie nun die verschiedenen Schritte
durchlaufen die zur Erstellung eines einfachen Programms mit C in Visu-
al Studio notwendig sind Das Programm soll nach dem Aufruf zunaumlchst so
aussehen wie in Abbildung 11 gezeigt
Abbildung 11 Erstes Programm nach dem Aufruf
Nach Betaumltigung des Buttons Hallo soll sich der Text in der obersten Zeile
entsprechend veraumlndern (siehe Abbildung 12)
4493book Seite 16 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
17
1
Abbildung 12 Nach einem Klick auf den Button raquoHallolaquo
14 Visual Studio-Entwicklungsumgebung
Waumlhrend der Projekterstellung werden Sie die Visual Studio-Entwicklungs-
umgebung Schritt fuumlr Schritt kennenlernen
141 Ein neues Projekt
Nach dem Aufruf des Programms Visual Studio Community 2017 muumlssen
Sie zur Erstellung eines neuen C-Projekts den Menuumlpunkt Datei bull Neu bull
Projekt ausfuumlhren Anschlieszligend waumlhlen Sie in der Kategorie Instal-
liert bull Vorlagen bull Visual C die Vorlage Windows Forms-App aus Als
Projektname bietet die Entwicklungsumgebung den Namen Windows-
FormsApp1 an dieser sollte geaumlndert werden zum Beispiel in MeinErstes
Nach Betaumltigung der Schaltflaumlche OK erscheinen nun einige Elemente der
Entwicklungsumgebung Folgende sind besonders wichtig
Form Das Benutzerformular (engl Form) enthaumllt die Oberflaumlche fuumlr den Benut-
zer des Programms (siehe Abbildung 13)
Abbildung 13 Benutzerformular
Toolbox Der Werkzeugkasten (engl Toolbox) enthaumllt die Steuerelemente fuumlr
den Benutzer mit denen er den Ablauf des Programms steuern kann Sie
4493book Seite 17 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
18
werden vom Programmentwickler in das Formular eingefuumlgt (siehe Ab-
bildung 14) Sollten in der Toolbox keine Steuerelemente angezeigt wer-
den klicken Sie einmal auf das Benutzerformular und anschlieszligend wie-
der auf die Toolbox Weitere Registerkarten zum Beispiel Server-
Explorer und Datenquellen werden nicht benoumltigt und koumlnnen je-
weils uumlber das Kreuz oben rechts ausgeblendet werden
Abbildung 14 Der raquoWerkzeugkastenlaquo mit verschiedenen
Kategorien von Steuerelementen
Eigenschaften-
Fenster
Das Eigenschaften-Fenster (engl Properties Window) dient dem An-
zeigen und Aumlndern der Eigenschaften von Steuerelementen innerhalb
des Formulars durch den Programmentwickler (siehe Abbildung 15) Ich
empfehle Ihnen sich die Eigenschaften in alphabetischer Reihenfolge
anzeigen zu lassen Betaumltigen Sie dazu einfach unter Form1 das zweite
Symbol von links
Abbildung 15 Eigenschaften-Fenster
Projektmappen-
Explorer
Der Projektmappen-Explorer (engl Solution Explorer) zeigt das geoumlff-
nete Projekt und die darin vorhandenen Elemente (siehe Abbildung 16)
4493book Seite 18 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
19
1
Abbildung 16 Projektmappen-Explorer
Elemente anzeigenSollte der Werkzeugkasten das Eigenschaften-Fenster oder der Pro-
jektmappen-Explorer nicht angezeigt werden koumlnnen Sie das betreffen-
de Element uumlber das Menuuml Ansicht einblenden Ist das Formular nicht
sichtbar blenden Sie es einfach uumlber einen Doppelklick auf den Namen
(Form1cs) im Projektmappen-Explorer ein Sollten die Eigenschaften
eines Steuerelements nicht im bereits sichtbaren Eigenschaften-Fenster
angezeigt werden markieren Sie zunaumlchst den Namen der Formulardatei
(Form1cs) im Projektmappen-Explorer und anschlieszligend das betref-
fende Steuerelement
Anfangs schreiben Sie nur einfache Programme mit wenigen Elementen
daher benoumltigen Sie den Projektmappen-Explorer jetzt noch nicht Es
empfiehlt sich das Eigenschaften-Fenster nach oben zu vergroumlszligern
142 Einfuumlgen von Steuerelementen
Label ButtonZunaumlchst sollen drei Steuerelemente in das Formular eingefuumlgt werden
ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflaumlchen (Buttons) Ein
Bezeichnungsfeld dient im Allgemeinen dazu feste oder veraumlnderliche
Texte auf der Benutzeroberflaumlche anzuzeigen In diesem Programm soll
das Label einen Text anzeigen Ein Button dient zum Starten bestimmter
Programmteile oder allgemeiner ausgedruumlckt zum Ausloumlsen von Ereignis-
sen In diesem Programm sollen die Buttons dazu dienen den Text anzu-
zeigen bzw das Programm zu beenden
Allgemeine
Steuerelemente
Um ein Steuerelement einzufuumlgen ziehen Sie es mithilfe der Maus aus
dem Werkzeugkasten an die gewuumlnschte Stelle im Formular Alle Steuer-
elemente finden sich im Werkzeugkasten unter Alle Windows Forms
4493book Seite 19 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
20
Uumlbersichtlicher ist jedoch der Zugriff uumlber Allgemeine Steuerelemente
(engl Common Controls) siehe Abbildung 17
Abbildung 17 raquoAllgemeine Steuerelementelaquo im raquoWerkzeugkastenlaquo
Steuerelement
auswaumlhlen
Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fuumlgt es
ebenfalls in die Form ein Position und Groumlszlige des Elements koumlnnen an-
schlieszligend noch veraumlndert werden Dazu waumlhlen Sie das betreffende
Steuerelement vorher durch Anklicken aus (siehe Abbildung 18) Ein uumlber-
fluumlssiges Steuerelement koumlnnen Sie durch Auswaumlhlen und Druumlcken der
Taste (Entf) entfernen
Abbildung 18 Ausgewaumlhlter Button
Die Groumlszlige und andere Eigenschaften des Formulars selbst koumlnnen Sie
ebenfalls veraumlndern Dazu waumlhlen Sie es vorher durch Anklicken einer frei-
en Stelle im Formular aus
143 Arbeiten mit dem Eigenschaften-Fenster
Die eingefuumlgten Steuerelemente haben zunaumlchst einheitliche Namen und
Aufschriften diese sollten Sie allerdings zur einfacheren Programment-
wicklung aumlndern Es gibt bestimmte Namenskonventionen die die Les-
barkeit erleichtern Die Namen beinhalten den Typ (mit drei Buchstaben
abgekuumlrzt) und die Aufgabe des Steuerelements (jeweils mit groszligem An-
4493book Seite 20 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
21
1fangsbuchstaben) Aus den Namen der Steuerelemente ergeben sich auch
die Namen der sogenannten Ereignisprozeduren ebenfalls mit groszligem
Anfangsbuchstaben siehe Abschnitt 145 Seit Visual Studio 2017 wird staumlr-
ker auf die Einhaltung der Namenskonventionen geachtet
Cmd Txt Lbl Ein Button (eigentlich Command Button) der die Anzeige der Zeit ausloumlsen
soll wird beispielsweise mit CmdZeit bezeichnet Weitere Vorsilben sind Txt
(TextfeldTextBox) Lbl (BezeichnungsfeldLabel) Opt (Optionsschalt-
flaumlcheRadioButton) Frm (FormularForm) und Chk (Kontrollkaumlstchen
CheckBox)
Zur Aumlnderung des Namens eines Steuerelements muss es zunaumlchst ausge-
waumlhlt werden Das koumlnnen Sie entweder durch Anklicken des Steuerele-
ments auf dem Formular oder durch Auswahl desselben aus der Liste am
oberen Ende des Eigenschaften-Fensters tun
Eigenschaften-
Fenster
Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewaumlhlten
Steuerelements angezeigt Die Liste ist zweispaltig In der linken Spalte
steht der Name der Eigenschaft in der rechten ihr aktueller Wert Die Eigen-
schaft (Name) steht am Anfang der Liste der Eigenschaften Die betreffende
Zeile waumlhlen Sie durch Anklicken aus und geben hier den neuen Namen
ein Nach Bestaumltigung mit der Taste (cent) ist die Eigenschaft geaumlndert (siehe
Abbildung 19)
Abbildung 19 Button nach der Namensaumlnderung
TextDie Aufschrift von Buttons Labels und Formularen ist in der Eigenschaft
Text angegeben Sobald diese Eigenschaft veraumlndert wird erscheint die ver-
aumlnderte Aufschrift in dem betreffenden Steuerelement Auch der Name
und die Aufschrift des Formulars sollten geaumlndert werden Im Folgenden
sind die gewuumlnschten Eigenschaften fuumlr die Steuerelemente dieses Pro-
gramms in Tabellenform angegeben siehe Tabelle 11
4493book Seite 21 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
18
werden vom Programmentwickler in das Formular eingefuumlgt (siehe Ab-
bildung 14) Sollten in der Toolbox keine Steuerelemente angezeigt wer-
den klicken Sie einmal auf das Benutzerformular und anschlieszligend wie-
der auf die Toolbox Weitere Registerkarten zum Beispiel Server-
Explorer und Datenquellen werden nicht benoumltigt und koumlnnen je-
weils uumlber das Kreuz oben rechts ausgeblendet werden
Abbildung 14 Der raquoWerkzeugkastenlaquo mit verschiedenen
Kategorien von Steuerelementen
Eigenschaften-
Fenster
Das Eigenschaften-Fenster (engl Properties Window) dient dem An-
zeigen und Aumlndern der Eigenschaften von Steuerelementen innerhalb
des Formulars durch den Programmentwickler (siehe Abbildung 15) Ich
empfehle Ihnen sich die Eigenschaften in alphabetischer Reihenfolge
anzeigen zu lassen Betaumltigen Sie dazu einfach unter Form1 das zweite
Symbol von links
Abbildung 15 Eigenschaften-Fenster
Projektmappen-
Explorer
Der Projektmappen-Explorer (engl Solution Explorer) zeigt das geoumlff-
nete Projekt und die darin vorhandenen Elemente (siehe Abbildung 16)
4493book Seite 18 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
19
1
Abbildung 16 Projektmappen-Explorer
Elemente anzeigenSollte der Werkzeugkasten das Eigenschaften-Fenster oder der Pro-
jektmappen-Explorer nicht angezeigt werden koumlnnen Sie das betreffen-
de Element uumlber das Menuuml Ansicht einblenden Ist das Formular nicht
sichtbar blenden Sie es einfach uumlber einen Doppelklick auf den Namen
(Form1cs) im Projektmappen-Explorer ein Sollten die Eigenschaften
eines Steuerelements nicht im bereits sichtbaren Eigenschaften-Fenster
angezeigt werden markieren Sie zunaumlchst den Namen der Formulardatei
(Form1cs) im Projektmappen-Explorer und anschlieszligend das betref-
fende Steuerelement
Anfangs schreiben Sie nur einfache Programme mit wenigen Elementen
daher benoumltigen Sie den Projektmappen-Explorer jetzt noch nicht Es
empfiehlt sich das Eigenschaften-Fenster nach oben zu vergroumlszligern
142 Einfuumlgen von Steuerelementen
Label ButtonZunaumlchst sollen drei Steuerelemente in das Formular eingefuumlgt werden
ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflaumlchen (Buttons) Ein
Bezeichnungsfeld dient im Allgemeinen dazu feste oder veraumlnderliche
Texte auf der Benutzeroberflaumlche anzuzeigen In diesem Programm soll
das Label einen Text anzeigen Ein Button dient zum Starten bestimmter
Programmteile oder allgemeiner ausgedruumlckt zum Ausloumlsen von Ereignis-
sen In diesem Programm sollen die Buttons dazu dienen den Text anzu-
zeigen bzw das Programm zu beenden
Allgemeine
Steuerelemente
Um ein Steuerelement einzufuumlgen ziehen Sie es mithilfe der Maus aus
dem Werkzeugkasten an die gewuumlnschte Stelle im Formular Alle Steuer-
elemente finden sich im Werkzeugkasten unter Alle Windows Forms
4493book Seite 19 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
20
Uumlbersichtlicher ist jedoch der Zugriff uumlber Allgemeine Steuerelemente
(engl Common Controls) siehe Abbildung 17
Abbildung 17 raquoAllgemeine Steuerelementelaquo im raquoWerkzeugkastenlaquo
Steuerelement
auswaumlhlen
Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fuumlgt es
ebenfalls in die Form ein Position und Groumlszlige des Elements koumlnnen an-
schlieszligend noch veraumlndert werden Dazu waumlhlen Sie das betreffende
Steuerelement vorher durch Anklicken aus (siehe Abbildung 18) Ein uumlber-
fluumlssiges Steuerelement koumlnnen Sie durch Auswaumlhlen und Druumlcken der
Taste (Entf) entfernen
Abbildung 18 Ausgewaumlhlter Button
Die Groumlszlige und andere Eigenschaften des Formulars selbst koumlnnen Sie
ebenfalls veraumlndern Dazu waumlhlen Sie es vorher durch Anklicken einer frei-
en Stelle im Formular aus
143 Arbeiten mit dem Eigenschaften-Fenster
Die eingefuumlgten Steuerelemente haben zunaumlchst einheitliche Namen und
Aufschriften diese sollten Sie allerdings zur einfacheren Programment-
wicklung aumlndern Es gibt bestimmte Namenskonventionen die die Les-
barkeit erleichtern Die Namen beinhalten den Typ (mit drei Buchstaben
abgekuumlrzt) und die Aufgabe des Steuerelements (jeweils mit groszligem An-
4493book Seite 20 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
21
1fangsbuchstaben) Aus den Namen der Steuerelemente ergeben sich auch
die Namen der sogenannten Ereignisprozeduren ebenfalls mit groszligem
Anfangsbuchstaben siehe Abschnitt 145 Seit Visual Studio 2017 wird staumlr-
ker auf die Einhaltung der Namenskonventionen geachtet
Cmd Txt Lbl Ein Button (eigentlich Command Button) der die Anzeige der Zeit ausloumlsen
soll wird beispielsweise mit CmdZeit bezeichnet Weitere Vorsilben sind Txt
(TextfeldTextBox) Lbl (BezeichnungsfeldLabel) Opt (Optionsschalt-
flaumlcheRadioButton) Frm (FormularForm) und Chk (Kontrollkaumlstchen
CheckBox)
Zur Aumlnderung des Namens eines Steuerelements muss es zunaumlchst ausge-
waumlhlt werden Das koumlnnen Sie entweder durch Anklicken des Steuerele-
ments auf dem Formular oder durch Auswahl desselben aus der Liste am
oberen Ende des Eigenschaften-Fensters tun
Eigenschaften-
Fenster
Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewaumlhlten
Steuerelements angezeigt Die Liste ist zweispaltig In der linken Spalte
steht der Name der Eigenschaft in der rechten ihr aktueller Wert Die Eigen-
schaft (Name) steht am Anfang der Liste der Eigenschaften Die betreffende
Zeile waumlhlen Sie durch Anklicken aus und geben hier den neuen Namen
ein Nach Bestaumltigung mit der Taste (cent) ist die Eigenschaft geaumlndert (siehe
Abbildung 19)
Abbildung 19 Button nach der Namensaumlnderung
TextDie Aufschrift von Buttons Labels und Formularen ist in der Eigenschaft
Text angegeben Sobald diese Eigenschaft veraumlndert wird erscheint die ver-
aumlnderte Aufschrift in dem betreffenden Steuerelement Auch der Name
und die Aufschrift des Formulars sollten geaumlndert werden Im Folgenden
sind die gewuumlnschten Eigenschaften fuumlr die Steuerelemente dieses Pro-
gramms in Tabellenform angegeben siehe Tabelle 11
4493book Seite 21 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
20
Uumlbersichtlicher ist jedoch der Zugriff uumlber Allgemeine Steuerelemente
(engl Common Controls) siehe Abbildung 17
Abbildung 17 raquoAllgemeine Steuerelementelaquo im raquoWerkzeugkastenlaquo
Steuerelement
auswaumlhlen
Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fuumlgt es
ebenfalls in die Form ein Position und Groumlszlige des Elements koumlnnen an-
schlieszligend noch veraumlndert werden Dazu waumlhlen Sie das betreffende
Steuerelement vorher durch Anklicken aus (siehe Abbildung 18) Ein uumlber-
fluumlssiges Steuerelement koumlnnen Sie durch Auswaumlhlen und Druumlcken der
Taste (Entf) entfernen
Abbildung 18 Ausgewaumlhlter Button
Die Groumlszlige und andere Eigenschaften des Formulars selbst koumlnnen Sie
ebenfalls veraumlndern Dazu waumlhlen Sie es vorher durch Anklicken einer frei-
en Stelle im Formular aus
143 Arbeiten mit dem Eigenschaften-Fenster
Die eingefuumlgten Steuerelemente haben zunaumlchst einheitliche Namen und
Aufschriften diese sollten Sie allerdings zur einfacheren Programment-
wicklung aumlndern Es gibt bestimmte Namenskonventionen die die Les-
barkeit erleichtern Die Namen beinhalten den Typ (mit drei Buchstaben
abgekuumlrzt) und die Aufgabe des Steuerelements (jeweils mit groszligem An-
4493book Seite 20 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
21
1fangsbuchstaben) Aus den Namen der Steuerelemente ergeben sich auch
die Namen der sogenannten Ereignisprozeduren ebenfalls mit groszligem
Anfangsbuchstaben siehe Abschnitt 145 Seit Visual Studio 2017 wird staumlr-
ker auf die Einhaltung der Namenskonventionen geachtet
Cmd Txt Lbl Ein Button (eigentlich Command Button) der die Anzeige der Zeit ausloumlsen
soll wird beispielsweise mit CmdZeit bezeichnet Weitere Vorsilben sind Txt
(TextfeldTextBox) Lbl (BezeichnungsfeldLabel) Opt (Optionsschalt-
flaumlcheRadioButton) Frm (FormularForm) und Chk (Kontrollkaumlstchen
CheckBox)
Zur Aumlnderung des Namens eines Steuerelements muss es zunaumlchst ausge-
waumlhlt werden Das koumlnnen Sie entweder durch Anklicken des Steuerele-
ments auf dem Formular oder durch Auswahl desselben aus der Liste am
oberen Ende des Eigenschaften-Fensters tun
Eigenschaften-
Fenster
Im Eigenschaften-Fenster werden alle Eigenschaften des ausgewaumlhlten
Steuerelements angezeigt Die Liste ist zweispaltig In der linken Spalte
steht der Name der Eigenschaft in der rechten ihr aktueller Wert Die Eigen-
schaft (Name) steht am Anfang der Liste der Eigenschaften Die betreffende
Zeile waumlhlen Sie durch Anklicken aus und geben hier den neuen Namen
ein Nach Bestaumltigung mit der Taste (cent) ist die Eigenschaft geaumlndert (siehe
Abbildung 19)
Abbildung 19 Button nach der Namensaumlnderung
TextDie Aufschrift von Buttons Labels und Formularen ist in der Eigenschaft
Text angegeben Sobald diese Eigenschaft veraumlndert wird erscheint die ver-
aumlnderte Aufschrift in dem betreffenden Steuerelement Auch der Name
und die Aufschrift des Formulars sollten geaumlndert werden Im Folgenden
sind die gewuumlnschten Eigenschaften fuumlr die Steuerelemente dieses Pro-
gramms in Tabellenform angegeben siehe Tabelle 11
4493book Seite 21 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
22
Startzustand Hiermit legen Sie den Startzustand fest also die Eigenschaften welche die
Steuerelemente zu Beginn des Programms bzw eventuell waumlhrend des ge-
samten Programms haben sollen Viele Eigenschaften koumlnnen Sie auch
noch waumlhrend der Laufzeit des Programms durch den Programmcode ver-
aumlndern
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen Zur Aumlnderung auf FixedSingle klappen Sie die
Liste bei der Eigenschaft auf und waumlhlen den betreffenden Eintrag aus sie-
he Abbildung 110 Zur Aumlnderung einiger Eigenschaften muumlssen Sie gegebe-
nenfalls ein Dialogfeld aufrufen
Abbildung 110 Label nach der Aumlnderung von Name und BorderStyle
Typ Eigenschaft Einstellung
Formular Text Mein erstes Programm
Button Name CmdHallo
Text Hallo
Button Name CmdEnde
Text Ende
Label Name LblAnzeige
Text (leer)
BorderStyle FixedSingle
Tabelle 11 Steuerelemente mit Eigenschaften
4493book Seite 22 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
23
1Im Label soll zunaumlchst der Text (leer) erscheinen Hierzu waumlhlen Sie den
vorhandenen Text durch Anklicken aus und aumlndern ihn
Liste der
Steuerelemente
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der Lis-
te die sich am oberen Ende des Eigenschaften-Fensters oumlffnen laumlsst
Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe Die Steuer-
elemente des gleichen Typs stehen immer direkt untereinander
144 Speichern eines Projekts
Alles speichernDie Daten eines C-Projekts werden innerhalb von Visual Studio in ver-
schiedenen Dateien gespeichert Zum Speichern des gesamten Projekts
verwenden Sie den Menuumlpunkt Datei bull Alles Speichern Diesen Vorgang
sollten Sie in regelmaumlszligigen Abstaumlnden durchfuumlhren damit keine Aumlnderun-
gen verloren gehen koumlnnen
Die in diesem Skript angegebenen Namen erleichtern eine schnelle und
eindeutige Orientierung und das spaumltere Auffinden von aumllteren Pro-
grammen
145 Das Codefenster
EreignisDer Ablauf eines Windows-Programms wird im Wesentlichen durch das
Ausloumlsen von Ereignissen durch den Benutzer gesteuert Er loumlst z B die
Anzeige des Texts Hallo aus indem er auf den Button Hallo klickt Der
Entwickler muss dafuumlr sorgen dass aufgrund dieses Ereignisses auch tat-
saumlchlich der gewuumlnschte Text angezeigt wird Zu diesem Zweck schreibt er
Programmcode und ordnet diesen Code dem Ereignis zu Der Code wird in
einer so genannten Ereignismethode abgelegt
EreignismethodeZum Schreiben einer Ereignismethode fuumlhren Sie am besten einen Dop-
pelklick auf dem betreffenden Steuerelement aus Daraufhin erscheint das
Codefenster Zwischen der Formularansicht und der Codeansicht koumlnnen
Sie anschlieszligend uumlber die Menuumlpunkte Ansicht bull Code bzw Ansicht bull
Designer hin- und herschalten Das ist auch uumlber die Registerkarten ober-
halb des Formulars bzw des Codefensters moumlglich (siehe Abbildung 111)
4493book Seite 23 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
24
Abbildung 111 Registerkarten
Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im Code-
fenster die folgenden Eintraumlge
using Systemusing SystemWindowsForms
namespace MeinErstes
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdHallo_Click(object sender EventArgs e)
Listing 11 Projekt raquoMeinErsteslaquo Button raquoHallolaquo ohne Code
Zur Erlaumluterung
Grundsaumltzlich gilt dass Sie sich nicht von der Vielzahl der automatisch
erzeugten Zeilen und den noch unbekannten Inhalten abschrecken las-
sen sollten
Zunaumlchst das Wichtigste Innerhalb der geschweiften Klammern der
Ereignismethode CmdHallo_Click() wird spaumlter Ihr eigener Programm-
code hinzugefuumlgt
4493book Seite 24 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
25
1Zu den anderen Bestandteilen (die erst spaumlter fuumlr das eigene Programmie-
ren wichtig werden)
Namensraum C ist eine objektorientierte Sprache Ein wichtiges Element objektori-
entierter Sprachen sind die so genannten Klassen Klassen eroumlffnen wei-
tere Programmiermoumlglichkeiten Namensraumlume wiederum beinhalten
zusammengehoumlrige Klassen
using In obigem Listing koumlnnen Sie erkennen dass einige Programmzeilen
die mit using beginnen bereits entfernt wurden Das Schluumlsselwort
using dient zum Einbinden von Namensraumlumen in das aktuelle Projekt
Da wir die Klassen in diesen Namensraumlumen nicht benoumltigen wurden
die betreffenden Zeilen entfernt
Seit der Version 2015 von Visual Studio werden solche uumlberfluumlssigen Ele-
mente in grauer Schriftfarbe dargestellt Falls sich der Cursor in einer der
betreffenden Zeilen befindet erscheint links von der Zeile eine gelbe
Gluumlhbirne Platzieren Sie den Mauszeiger uumlber dieser Gluumlhbirne koumlnnen
Sie sich Hinweise dazu anzeigen lassen wie die uumlberfluumlssigen Elemente
ganz entfernt werden koumlnnen
namespace Oberhalb von public partial class und von private void erschei-
nen auszligerdem seit Visual Studio 2015 automatisch weitere Informatio-
nen zur Klasse Form1 und ihren Elementen in kleiner grauer Schrift wie
zum Beispiel 0 references oder 3 references Auch diese koumlnnen wir zu-
naumlchst noch ignorieren
Dieses erste Projekt verfuumlgt uumlber einen eigenen Namensraum (engl
namespace) daher namespace MeinErstes
public partial class Alle Elemente des aktuellen Formulars Form1 stehen innerhalb der
oumlffentlich zugaumlnglichen Klasse Form1 daher public class Form1 Ein Teil
der Elemente steht in dieser Datei ein anderer Teil der ebenfalls auto-
matisch erzeugt wurde steht in einer anderen hier nicht sichtbaren
Datei daher der Zusatz partial (dt teilweise)
Die Methode InitializeComponent() beinhaltet Programmzeilen die das
Aussehen und Verhalten der Steuerelemente des Programms bestim-
men
private void Der Zusatz private bedeutet dass die Ereignismethode CmdHalloClick()
nur in dieser Klasse bekannt ist Mit void wird gekennzeichnet dass die-
se Methode lediglich etwas ausfuumlhrt aber kein Ergebnis zuruumlckliefert
4493book Seite 25 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
26
Auf weitere Einzelheiten dieser automatisch erzeugten Bestandteile
wird zu einem spaumlteren Zeitpunkt eingegangen da es hier noch nicht
notwendig ist und eher verwirren wuumlrde
Der anfaumlnglich ausgefuumlhrte Doppelklick fuumlhrt immer zu dem Ereignis das
am haumlufigsten mit dem betreffenden Steuerelement verbunden wird
Click Das ist beim Button natuumlrlich das Ereignis Click Zu einem Steuerelement
gibt es aber auch noch andere moumlgliche Ereignisse
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des Pro-
grammcodes im Buch abgebildet sondern nur noch
die Teile die vom Entwickler per Codeeingabe erzeugt werden
und die Teile des automatisch erzeugten Codes die wichtig fuumlr das allge-
meine Verstaumlndnis sind
Den vollstaumlndigen Programmcode koumlnnen Sie aber jederzeit betrachten
wenn Sie die Beispielprojekte laden bzw ausprobieren
146 Schreiben von Programmcode
In der Methode CmdHallo_Click() soll eine Befehlszeile eingefuumlgt werden
sodass sie anschlieszligend wie folgt aussieht
private void CmdHallo_Click(object sender EventArgs e)
LblAnzeigeText = Hallo
Listing 12 Projekt raquoMeinErsteslaquo Button raquoHallolaquo mit Code
Der Text muss in Anfuumlhrungszeichen gesetzt werden da C sonst an-
nimmt dass es sich um eine Variable mit dem Namen Hallo handelt
Anweisung Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen zusam-
men die nacheinander ausgefuumlhrt werden Die vorliegende Methode ent-
haumllt nur eine Anweisung in ihr wird mithilfe des Gleichheitszeichens eine
Zuweisung durchgefuumlhrt
Zuweisung Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen der Objekteigenschaft oder der Steuerele-
menteigenschaft links vom Gleichheitszeichen zugewiesen Die Zeichen-
4493book Seite 26 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
27
1kette Hallo wird der Eigenschaft Text des Steuerelements LblAnzeige mit-
tels folgender Schreibweise SteuerelementEigenschaft = Wert zugewiesen
Das fuumlhrt zur Anzeige des Werts
Nach dem Wechsel auf die Formularansicht koumlnnen Sie das naumlchste Steuer-
element auswaumlhlen fuumlr das eine Ereignismethode geschrieben werden soll
Code editierenInnerhalb des Codefensters kann Text mit den gaumlngigen Methoden der
Textverarbeitung editiert kopiert verschoben und geloumlscht werden
In der Ereignismethode CmdEnde_Click() soll der folgende Code stehen
private void CmdEnde_Click(object sender EventArgs e)
Close()
Listing 13 Projekt raquoMeinErsteslaquo Button raquoEndelaquo
Close()Die Methode Close() dient dem Schlieszligen eines Formulars Da es sich um
das einzige Formular dieses Projekts handelt wird dadurch das Programm
beendet und die gesamte Windows-Anwendung geschlossen
Dies waren einige Beispiele zur Aumlnderung der Eigenschaften eines Steuer-
elements zur Laufzeit des Programms durch Programmcode Sie erinnern
sich Zu Beginn hatten wir bereits die Starteigenschaften der Steuerele-
mente im Eigenschaften-Fenster eingestellt
147 Kommentare
Bei laumlngeren Programmen mit vielen Anweisungen gehoumlrt es zum guten
Programmierstil Kommentarzeilen zu schreiben In diesen Zeilen werden
einzelne Anweisungen oder auch laumlngere Bloumlcke von Anweisungen er-
laumlutert damit Sie selbst oder auch ein anderer Programmierer sie spaumlter
leichter nachvollziehen koumlnnen Alle Zeichen innerhalb eines Kommen-
tars werden nicht uumlbersetzt oder ausgefuumlhrt
Kommentar Ein Kommentar beginnt mit der Zeichenkombination endet mit der Zei-
chenkombination und kann sich uumlber mehrere Zeilen erstrecken
KommentarEine andere Moumlglichkeit ergibt sich durch die Zeichenkombination Ein
solcher Kommentar erstreckt sich nur bis zum Ende der Zeile
4493book Seite 27 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
28
Der folgende Programmcode wird um einen Kommentar ergaumlnzt
private void CmdEnde_Click(object sender EventArgs e)
Diese Anweisung beendetdas Programm
Close()
Listing 14 Projekt raquoMeinErsteslaquo Button raquoEndelaquo mit Kommentar
Code aus-
kommentieren
Hier noch ein kleiner Trick Sollen bestimmte Programmzeilen fuumlr einen
Test des Programms kurzfristig nicht ausgefuumlhrt werden koumlnnen Sie sie
auskommentieren indem Sie die Zeichenkombination vor die betreffen-
den Zeilen setzen Das geht sehr schnell indem Sie die betreffende(n)
Zeile(n) markieren und anschlieszligend das entsprechende Symbol in der
Symbolleiste anklicken siehe Abbildung 112 Rechts daneben befindet sich
das Symbol welches die Auskommentierung nach dem Test wieder ruumlck-
gaumlngig macht
Abbildung 112 Kommentar einaus
148 Starten Ausfuumlhren und Beenden des Programms
Programm starten Nach dem Einfuumlgen der Steuerelemente und dem Erstellen der Ereignis-
methoden ist das Programm fertig und kann gestartet werden Dazu
betaumltigen Sie den Start-Button in der Symbolleiste (dreieckiger gruumlner
Pfeil nach rechts) Alternativ starten Sie das Programm uumlber die Funk-
tionstaste (F5) oder den Menuumlpunkt Debuggen bull Debugging Starten
Das Formular erscheint und das Betaumltigen der Buttons fuumlhrt zum pro-
grammierten Ergebnis
Programm beenden Zur regulaumlren Beendigung eines Programms ist der Button mit der Auf-
schrift Ende vorgesehen Moumlchten Sie ein Programm waumlhrend des Verlaufs
vorzeitig abbrechen koumlnnen Sie auch den Ende-Button in der Symbolleiste
(rotes Quadrat) betaumltigen
4493book Seite 28 Mittwoch 8 Maumlrz 2017 112 13
14 Visual Studio-Entwicklungsumgebung
29
1FehlerTritt waumlhrend der Ausfuumlhrung eines Programms ein Fehler auf werden Sie
hierauf hingewiesen und das Codefenster zeigt die entsprechende Ereig-
nismethode sowie die fehlerhafte Zeile an In diesem Fall beenden Sie das
Programm korrigieren den Code und starten das Programm wieder
Programm testenEs ist empfehlenswert das Programm bereits waumlhrend der Entwicklung
mehrmals durch einen Aufruf zu testen und nicht erst wenn das Pro-
gramm vollstaumlndig erstellt worden ist Ein geeigneter Zeitpunkt dazu er-
gibt sich zum Beispiel
nach dem Einfuumlgen der Steuerelemente und dem Zuweisen der Eigen-
schaften die Sie zu Programmbeginn benoumltigen oder
nach dem Erstellen jeder Ereignismethode
149 Ausfuumlhrbares Programm
exe-DateiNach erfolgreichem Test des Programms koumlnnen Sie die ausfuumlhrbare Datei
(exe-Datei) auch auszligerhalb der Entwicklungsumgebung aufrufen Haben
Sie an den Grundeinstellungen nichts veraumlndert und die vorgeschlage-
nen Namen verwendet findet sich die zugehoumlrige exe-Datei des aktuellen
Projekts im Verzeichnis DokumenteVisual Studio 2017ProjectsMeinErs-
tesMeinErstesbinDebug Das Programm kann also ganz normal im Win-
dows-Explorer direkt uumlber Doppelklick gestartet werden
Die Weitergabe eines eigenen Windows-Programms auf einen anderen PC
ist etwas aufwendiger Dieser Vorgang wird im Anhang beschrieben
1410 Schlieszligen und Oumlffnen eines Projekts
Projekt schlieszligenUm ein Projekt zu schlieszligen waumlhlen Sie den Menuumlpunkt Datei bull Projekt-
mappe schliessen Falls Sie Veraumlnderungen vorgenommen haben wer-
den Sie vorher gefragt ob Sie diese Aumlnderungen speichern moumlchten
Wollen Sie die Projektdaten sicherheitshalber zwischendurch speichern ist
das uumlber den Menuumlpunkt Datei bull Alles speichern moumlglich Das ist bei
laumlngeren Entwicklungsphasen sehr zu empfehlen
Projekt oumlffnenZum Oumlffnen eines vorhandenen Projekts waumlhlen Sie den Menuumlpunkt
Datei bull oumlffnen bull Projekt Im darauffolgenden Dialogfeld Projekt oumlff-
nen waumlhlen Sie zunaumlchst das gewuumlnschte Projektverzeichnis aus und an-
schlieszligend die gleichnamige Datei mit der Endung sln
4493book Seite 29 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
30
Alle Beispielprojekte finden Sie auf wwwrheinwerk-verlagde4351 unter
raquoMaterialien zum Buchlaquo zum Download Sollte eines der Projekte einmal
nicht gestartet werden koumlnnen sollten Sie es uumlber den Menuumlpunkt Erstel-
len bull Projektmappe neu erstellen neu erstellen
1411 Uumlbung
Uumlbung UName Erzeugen Sie ein Windows-Programm mit einem Formular das zwei But-
tons und ein Label beinhaltet (siehe Abbildung 113) Bei Betaumltigung des
ersten Buttons erscheint im Label Ihr Name Bei Betaumltigung des zweiten
Buttons wird das Programm beendet Namensvorschlaumlge Projektname
UName Buttons CmdMeinName und CmdEnde Label LblMeinName
Abbildung 113 Uumlbung UName
1412 Empfehlungen fuumlr Zeilenumbruumlche
Zeilenumbruch Zeilenumbruumlche erhoumlhen die Lesbarkeit des Programmcodes Sie koumlnnen
jedoch nicht an jeder Stelle innerhalb einer Anweisung durchgefuumlhrt wer-
den Nachfolgend werden einige Stellen empfohlen
nach einer oumlffnenden Klammer (wie bereits gezeigt)
vor einer schlieszligenden Klammer
nach einem Komma
nach einem Operator und
nach einem Punkt hinter einem Objektnamen
Falls Sie einen Zeilenumbruch innerhalb einer Zeichenkette durchfuumlhren
werden seit Visual Studio 2017 zur Fehlervermeidung beide Teile der Zei-
chenkette automatisch durch Anfuumlhrungszeichen begrenzt und durch den
Verkettungsoperator + (siehe Abschnitt 224) miteinander verbunden
4493book Seite 30 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
31
115 Arbeiten mit Steuerelementen
151 Steuerelemente formatieren
HilfslinienZur besseren Anordnung der Steuerelemente auf dem Formular koumlnnen
Sie sie mithilfe der Maus nach Augenmaszlig verschieben Dabei erscheinen
automatisch Hilfslinien falls das aktuelle Element horizontal oder vertikal
parallel zu einem anderen Element steht
Mehrere Steuerele-
mente markieren
Weitere Moumlglichkeiten bieten die Menuumlpunkte im Menuuml Format In vie-
len Faumlllen muumlssen vorher mehrere Steuerelemente auf einmal markiert
werden (siehe Abbildung 114)
Abbildung 114 Mehrere markierte Elemente
Das geschieht entweder
durch Umrahmung der Elemente mit einem Rechteck nachdem Sie zu-
vor das Steuerelement Zeiger ausgewaumlhlt haben oder
durch Mehrfachauswahl indem Sie ab dem zweiten auszuwaumlhlenden
Steuerelement die (ordf)-Taste (wie fuumlr Groszligbuchstaben) oder die (Strg)-
Taste gedruumlckt halten
Menuuml raquoFormatlaquoUumlber das Menuuml Format haben Sie anschlieszligend folgende Moumlglichkeiten
zur Anpassung der Steuerelemente
Die ausgewaumlhlten Steuerelemente koumlnnen horizontal oder vertikal zu-
einander ausgerichtet werden (Menuuml Format bull Ausrichten)
Auch die horizontalen undoder vertikalen Dimensionen der ausge-
waumlhlten Steuerelemente koumlnnen angeglichen werden (Menuuml Format bull
Groumlsse angleichen)
4493book Seite 31 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
32
Einheitliche
Abstaumlnde
Zudem koumlnnen die horizontalen und vertikalen Abstaumlnde zwischen den
ausgewaumlhlten Steuerelementen angeglichen vergroumlszligert verkleinert
oder entfernt werden (Menuuml Format bull Horizontaler AbstandVer-
tikaler Abstand)
Die Steuerelemente koumlnnen auszligerdem horizontal oder vertikal inner-
halb des Formulars zentriert werden (Menuuml Format bull auf Formular
zentrieren)
Sollten sich die Steuerelemente teilweise uumlberlappen koumlnnen Sie einzel-
ne Steuerelemente in den Vorder- bzw Hintergrund schieben (Menuuml
Format bull Reihenfolge)
Sie koumlnnen alle Steuerelemente gleichzeitig gegen versehentliches Ver-
schieben absichern (Menuuml Format bull Steuerelemente Sperren) Diese
Sperrung gilt nur waumlhrend der Entwicklung des Programms
Abbildung 115 zeigt ein Formular mit drei Buttons die alle linksbuumlndig aus-
gerichtet sind und den gleichen vertikalen Abstand voneinander haben
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 markieren Sie darin
mehrere Steuerelemente und testen Sie anschlieszligend die einzelnen Moumlg-
lichkeiten des Format-Menuumls aus
Abbildung 115 Nach der Formatierung
152 Steuerelemente kopieren
Steuerelemente
kopieren
Zur schnelleren Erzeugung eines Projekts koumlnnen vorhandene Steuerele-
mente einschlieszliglich aller ihrer Eigenschaften kopiert werden Markieren
Sie hierzu die gewuumlnschten Steuerelemente und kopieren Sie sie entweder
4493book Seite 32 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
33
1 uumlber das Menuuml Bearbeiten bull Kopieren und das Menuuml Bearbeiten bull
Einfuumlgen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V)
Anschlieszligend sollten Sie die neu erzeugten Steuerelemente direkt umbe-
nennen und an den gewuumlnschten Positionen anordnen
Uumlbung
Laden Sie das Projekt MeinErstes aus Abschnitt 13 und kopieren Sie einzel-
ne Steuerelemente Kontrollieren Sie anschlieszligend die Liste der vorhan-
denen Steuerelemente im Eigenschaften-Fenster auf eine einheitliche
Namensgebung
153 Eigenschaften zur Laufzeit aumlndern
Size LocationSteuerelemente haben die Eigenschaften Size (mit den Komponenten
Width und Height) und Location (mit den Komponenten X und Y) zur Anga-
be von Groumlszlige und Position X und Y geben die Koordinaten der oberen lin-
ken Ecke des Steuerelements an gemessen von der oberen linken Ecke des
umgebenden Elements (meist das Formular) Saumlmtliche Werte werden in
Pixeln angegeben
Alle diese Eigenschaften koumlnnen sowohl waumlhrend der Entwicklungszeit als
auch waumlhrend der Laufzeit eines Projekts veraumlndert werden Zur Aumlnderung
waumlhrend der Entwicklungszeit koumlnnen Sie die Eigenschaftswerte wie ge-
wohnt im Eigenschaften-Fenster eingeben Als Beispiel fuumlr Aumlnderungen
waumlhrend der Laufzeit soll hingegen das folgende Programm (Projekt
Steuerelemente) dienen (siehe Abbildung 116)
Abbildung 116 Position und Groumlszlige bestimmen
4493book Seite 33 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
34
Zunaumlchst ein Hinweis zu den benoumltigten Namensraumlumen die oberhalb der
Klasse eingebunden werden
using Systemusing SystemDrawingusing SystemWindowsForms
Listing 15 Projekt raquoSteuerelementelaquo Namensraumlume
Gegenuumlber dem vorherigen Projekt ist noch der Namensraum SystemDra-
wing hinzugekommen der beim Zugriff auf Positions- Groumlszligen- oder Farb-
angaben benoumltigt wird Die drei genannten Namensraumlume reichen bei vie-
len Projekten aus
Es wird nachfolgend generell nur der Teil des Programmcodes angezeigt
der veraumlndert wurde
private void CmdPositionRel_Click()
CmdTestLocation = new Point(CmdTestLocationX + 20 CmdTestLocationY)
private void CmdPositionAbs_Click()
CmdTestLocation = new Point(100 200)private void CmdGroesseRel_Click()
CmdTestSize = new Size(CmdTestSizeWidth + 20 CmdTestSizeHeight)
private void CmdGroesseAbs_Click()
CmdTestSize = new Size(50 100)
Listing 16 Projekt raquoSteuerelementelaquo
4493book Seite 34 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
35
1Zur Erlaumluterung
Verkuumlrzte
Darstellung
Der Kopfteil der einzelnen Methoden wird aus Gruumlnden der Uumlbersicht-
lichkeit jeweils in verkuumlrzter Form abgebildet Das wird bei den meisten
nachfolgenden Beispielen ebenfalls so sein auszliger wenn es genau auf die
Inhalte des Methodenkopfs ankommt
Das Formular enthaumllt fuumlnf Buttons Die oberen vier Buttons dienen der
Veraumlnderung von Position und Groumlszlige des fuumlnften Buttons
Die Position eines Elements kann relativ zur aktuellen Position oder auf
absolute Werte eingestellt werden Das Gleiche gilt fuumlr die Groumlszlige eines
Elements
Bei beiden Angaben handelt es sich um Wertepaare (XY bzw Breite
Houmlhe)
new Point Zur Einstellung der Position dient die Struktur Point Ein Objekt dieser
Struktur liefert ein Wertepaar In diesem Programm wird mit new jeweils
ein neues Objekt der Struktur Point erzeugt um das Wertepaar bereitzu-
stellen
X Y Bei Betaumltigung des Buttons Position Abs wird die Position des fuumlnften
Buttons auf die Werte X=100 und Y=200 gestellt jeweils gemessen von der
linken oberen Ecke des Formulars
Bei Betaumltigung des Buttons Position Rel wird die Position des fuumlnften
Buttons auf die Werte X = CmdTestLocationX + 20 und Y = CmdTestLoca-
tionY gestellt Bei X wird also der alte Wert der Komponente X um 20 er-
houmlht das Element bewegt sich nach rechts Bei Y wird der alte Wert der
Komponente Y nicht veraumlndert das Element bewegt sich somit nicht
nach oben oder unten
Size Zur Einstellung der Groumlszlige dient die Struktur Size
Width Height Bei Betaumltigung des Buttons Groumlsse Abs wird die Groumlszlige des fuumlnften But-
tons auf die Werte Width = 50 und Height = 100 gestellt
Bei Betaumltigung des Buttons Groumlsse Rel wird die Groumlszlige des fuumlnften
Buttons auf die Werte Width = CmdTestSizeWidth + 20 und Height = Cmd-
TestSizeHeight gestellt Bei Width wird also der alte Wert der Kompo-
nente Width um 20 erhoumlht das Element wird breiter Bei Height wird der
fruumlhere Wert der Komponente Height nicht veraumlndert das Element ver-
aumlndert seine Houmlhe daher nicht
Nach einigen Klicks sieht das Formular aus wie das in Abbildung 117
4493book Seite 35 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
36
Abbildung 117 Veraumlnderung von Eigenschaften zur Laufzeit
154 Vergabe und Verwendung von Namen
Beachten Sie in allen Programmen dass jedes Steuerelement seinen eige-
nen eindeutigen Namen hat und immer mit diesem Namen angesprochen
werden muss Besonders am Anfang passiert es erfahrungsgemaumlszlig haumlufig
dass ein Programm nur deshalb nicht zum gewuumlnschten Erfolg fuumlhrt weil
ein nicht vorhandener Name verwendet wird In diesem Zusammenhang
moumlchte ich noch einmal auf die Namenskonventionen hinweisen
Buttons sollten Namen wie z B CmdEnde CmdAnzeigen CmdBerechnen usw
haben
Labels sollten Namen wie z B LblAnzeige LblName LblUhrzeit
LblBeginnDatum haben
Diese Namen liefern eine eindeutige Information uumlber Typ und Funktion
des Steuerelements Falls Sie beim Schreiben von Programmcode anschlie-
szligend diese Namen z B vollstaumlndig in Kleinbuchstaben eingeben werden
Sie nach Verlassen der Zeile darauf aufmerksam gemacht Sie koumlnnen so
schnell erkennen ob Sie tatsaumlchlich ein vorhandenes Steuerelement ver-
wendet haben
155 Verknuumlpfung von Texten mehrzeilige Texte
+ zur Verkettung Mithilfe des Zeichens + koumlnnen mehrere Texte miteinander verknuumlpft wer-
den Falls ein einzelner Zahlenwert zwischen den Texten steht wird er vor-
her in einen Text umgewandelt Aufgepasst Falls mehrere Zahlenwerte
direkt nacheinander mithilfe des Zeichens + verknuumlpft werden werden sie
zunaumlchst mathematisch addiert
4493book Seite 36 Mittwoch 8 Maumlrz 2017 112 13
15 Arbeiten mit Steuerelementen
37
1nFalls Sie eine mehrzeilige Ausgabe wuumlnschen koumlnnen Sie einen Zeilenvor-
schub mithilfe der Zeichenfolge n (fuumlr new line) erzeugen
Nachfolgend wird das Formular des Projekts Steuerelemente vergroumlszligert
zum Beispiel auf 500 times 400 Anschlieszligend wird es um ein Label ergaumlnzt in
dem die aktuelle Position und Groumlszlige des Buttons angezeigt werden Das
soll nach Betaumltigung des Buttons Anzeige geschehen
private void CmdAnzeige_Click()
LblAnzeigeText = Position X + CmdTestLocationX + Y + CmdTestLocationY + n + Groumlszlige Breite +CmdTestSizeWidth + Houmlhe + CmdTestSizeHeight
Listing 17 Projekt raquoSteuerelementelaquo mit Anzeige
Nach einigen Klicks und der Betaumltigung des Buttons Anzeige sieht das For-
mular aus wie das in Abbildung 118
Abbildung 118 Anzeige der Eigenschaften
156 Eigenschaft BackColor Farben allgemein
BackColorDie Hintergrundfarbe eines Steuerelements wird mit der Eigenschaft Back-
Color festgelegt Dabei koumlnnen Sie die Farbe zur Entwicklungszeit leicht
mithilfe einer Farbpalette oder aus Systemfarben auswaumlhlen
ColorHintergrundfarben und andere Farben koumlnnen Sie auch zur Laufzeit ein-
stellen Dabei bedienen Sie sich der Farbwerte die Sie uumlber die Struktur Co-
lor auswaumlhlen
Ein Beispiel ebenfalls im Projekt Steuerelemente
4493book Seite 37 Mittwoch 8 Maumlrz 2017 112 13
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
1 Einfuumlhrung
38
private void CmdFarbe_Click()
BackColor = ColorYellowLblAnzeigeBackColor = ColorFromArgb(192 255 0)
Listing 18 Projekt raquoSteuerelementelaquo mit Farben
Zur Erlaumluterung
Diese Struktur bietet vordefinierte Farbnamen als Eigenschaften z B
Yellow Der Wert kann der Eigenschaft BackColor des Steuerelements zu-
gewiesen werden hier aber handelt es sich um das Formular selbst
FromArgb() Auszligerdem bietet die Struktur die Methode FromArgb() Diese koumlnnen Sie
auf verschiedene Arten aufrufen Eine dieser Arten erwartet genau drei
Parameter naumlmlich die Werte fuumlr Rot Gruumln und Blau jeweils zwischen 0
und 255
Das Formular sieht nach der Aumlnderung der Eigenschaft Farbe aus wie das in
Abbildung 119
Abbildung 119 Nach Aumlnderung der Eigenschaft raquoFarbelaquo
4493book Seite 38 Mittwoch 8 Maumlrz 2017 112 13
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
39
2
Kapitel 2
Grundlagen
In diesem Kapitel erlernen Sie auf anschauliche Weise die Sprachgrund-
lagen von C in Verbindung mit den gaumlngigen Steuerelementen von
Windows-Programmen
In den folgenden Abschnitten lernen Sie wichtige Elemente der Program-
mierung wie Variablen Operatoren Verzweigungen und Schleifen gemein-
sam mit wohlbekannten haumlufig verwendeten Steuerelementen kennen
21 Variablen und Datentypen
Variablen dienen der voruumlbergehenden Speicherung von Daten die sich
waumlhrend der Laufzeit eines Programms aumlndern koumlnnen Eine Variable be-
sitzt einen eindeutigen Namen unter dem sie angesprochen werden kann
211 Namen Werte
NamensregelnFuumlr die Namen von Variablen gelten in C die folgenden Regeln
Sie beginnen mit einem Buchstaben
Sie koumlnnen nur aus Buchstaben Zahlen und einigen wenigen Sonderzei-
chen (wie z B dem Unterstrich _) bestehen
Sie duumlrfen Umlaute oder auch das scharfe szlig enthalten Allerdings kann
das zu Fehlern im Einsatz unter anderssprachigen Umgebungen fuumlhren
Daher rate ich davon ab
Innerhalb eines Guumlltigkeitsbereichs darf es keine zwei Variablen mit
dem gleichen Namen geben (siehe Abschnitt 214)
Variablen erhalten ihre Werte durch Zuweisung per Gleichheitszeichen
Falls eine Variable als Erstes auf der rechten Seite des Gleichheitszeichens
genutzt wird muss ihr vorher ein Wert zugewiesen werden Anderenfalls
wird ein Fehler gemeldet
4493book Seite 39 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
40
212 Deklarationen
Neben dem Namen besitzt jede Variable einen Datentyp der die Art der In-
formation bestimmt die gespeichert werden kann Der Entwickler waumlhlt
den Datentyp danach aus ob er Texte Zahlen ohne Nachkommastellen
Zahlen mit Nachkommastellen oder z B logische Werte speichern moumlchte
Auswahl des
Datentyps
Auszligerdem muss er sich noch Gedanken uumlber die Groumlszlige des Bereichs ma-
chen den die Zahl oder der Text annehmen koumlnnte und uumlber die ge-
wuumlnschte Genauigkeit bei Zahlen Im folgenden Abschnitt finden Sie eine
Liste der gaumlngigsten Datentypen
Variablen muumlssen in C immer mit einem Datentyp deklariert werden Das
beugt Fehlern vor die aufgrund einer falschen Verwendung der Variablen
entstehen koumlnnten
213 Datentypen
Die wichtigsten von C unterstuumltzten Datentypen koumlnnen in einige groszlige
Gruppen unterteilt werden
Es gibt Datentypen zur Speicherung von ganzen Zahlen
den Datentyp byte mit Werten von 0 bis 255
den Datentyp short mit Werten von ndash32768 bis 32767
int den Datentyp int mit Werten von ndash2147483648 bis 2147483647
und den Datentyp long mit Werten von ndash9223372036854775808 bis
9223372036854775807
Auszligerdem gibt es Datentypen zur Speicherung von Zahlen mit Nachkom-
mastellen
den Datentyp float mit einfacher Genauigkeit und Werten
von ca ndash34times1038 bis ca 34times1038
double den Datentyp double mit doppelter Genauigkeit und Werten
von ca ndash17times10308 bis ca 17times10308
und den Datentyp decimal mit variabler Genauigkeit und Werten
von ca ndash79times1028 bis ca 79times1028
Einige weitere nuumltzliche Datentypen sind
der Datentyp bool mit den Werten true oder false (wahr oder falsch)
4493book Seite 40 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
41
2
der Datentyp char fuumlr einzelne Zeichen
string der Datentyp string fuumlr Zeichenketten mit variabler Laumlnge
Im folgenden Beispiel werden Variablen dieser Typen deklariert mit Wer-
ten versehen und in einem Label angezeigt (Projekt Datentypen)
private void CmdAnzeige_Click()
Ganze Zahlen byte Byshort Shint It Hexlong Lg
Zahlen mit Nachkommastellen float Fldouble Db1 Db2 Exp1 Exp2decimal De
Boolesche Variable Zeichen Zeichenkette bool Bochar Chstring St
Ganze Zahlen By = 200Sh = 30000It = 2000000000Lg = 3000000000Hex = 0x3a
Zahlen mit Nachkommastellen Fl = 10f 7Db1 = 1 7Db2 = 10 7De = 10m 7Exp1 = 15e3Exp2 = 15e-3
Boolesche Variable Zeichen Zeichenkette Bo = true
4493book Seite 41 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
42
Ch = aSt = Zeichenkette
LblAnzeigeText =byte + By + n + short + Sh + n +int + It + n + long + Lg + n +(hexadezimale Zahl) + Hex + nn +
float + Fl + n + double 1 + Db1 + n +double 2 + Db2 + n + decimal + De + n +(Exponent positiv) + Exp1 + n +(Exponent negativ) + Exp2 + nn +
bool + Bo + n +char + Ch + n + string + St
Listing 21 Projekt raquoDatentypenlaquo
Nach Betaumltigung des Buttons stellt das Programm die Ausgabe wie in Abbil-
dung 21 dar
Abbildung 21 Wichtige Datentypen
Zur Erlaumluterung
Deklaration Variablen werden mithilfe der Anweisung ltDatentypgt ltVariablennamegt
deklariert Mehrere Variablen desselben Datentyps koumlnnen durch
Kommata getrennt innerhalb einer Anweisung deklariert werden (z B
int x y)
4493book Seite 42 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
43
2
Variablen koumlnnen bereits bei der Deklaration einen Wert erhalten zum
Beispiel short Sh = 30000
Wertebereich Bei den Datentypen fuumlr ganze Zahlen fuumlhrt die Zuweisung einer zu
groszligen Zahl zu einer Uumlberschreitung des Wertebereichs und zu einer
Fehlermeldung
Hexadezimal Ganze Zahlen koumlnnen auch in hexadezimaler Form zugewiesen werden
mithilfe von 0x zu Beginn der Zahl gefolgt von den hexadezimalen Zif-
fern Diese gehen von 0 bis 9 es folgen a (= dezimal 10) b (=11) c (=12)
d (=13) e (=14) und f (=15) Ein Beispiel 0x2f5 entspricht 2times162 + 15times161 +
5times160 = 512 + 240 + 5 = 757
Zahlen mit Nach-
kommastellen
Die Datentypen fuumlr Zahlen mit Nachkommastellen unterscheiden sich
in ihrer Genauigkeit Nachkommastellen muumlssen im Programmcode
durch einen Dezimalpunkt abgetrennt werden In der Ausgabe wird
dagegen ein Dezimalkomma dargestellt Die Zuweisung einer zu groszligen
Zahl fuumlhrt zu einer Fehlermeldung Die Zuweisung einer zu kleinen Zahl
wiederum fuumlhrt zur Anzeige von raquoUnendlichlaquo () bzw zu einer unge-
nauen Speicherung
Division
ganzer Zahlen
Bei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Moumlchten Sie das nicht muumls-
sen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkommastel-
len kennzeichnen z B durch das Anhaumlngen von 0 Statt 1 schreiben Sie
10
Kuumlrzel f und m float-Werte sollten mit einem f gekennzeichnet werden decimal-Werte
mit einem m Damit erhaumllt die gesamte Division im vorliegenden Pro-
gramm einen float- bzw decimal-Wert
Exponential-
schreibweise
Sehr groszlige oder sehr kleine Zahlen koumlnnen im Programmcode auch in
der Exponentialschreibweise zugewiesen werden Zwei Beispiele 15e3
fuumlr 15000 oder 15e-3 fuumlr 00015
true false Werte fuumlr den Datentyp bool werden mit true und false zugewiesen
aber mit True und False ausgegeben
Anfuumlhrungszeichen Werte fuumlr Zeichen muumlssen in einfachen Anfuumlhrungszeichen und fuumlr Zei-
chenketten in doppelten Anfuumlhrungszeichen angegeben werden
Die Datentypen int double bool und string werden am Haumlufigsten ein-
gesetzt
4493book Seite 43 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
44
Uumlbung
Uumlbung
UDatentypen
Schreiben Sie ein Programm in welchem Ihre Adresse Ihr Nach- und Vor-
name Alter und Gehalt jeweils in Variablen eines geeigneten Datentyps ge-
speichert und anschlieszligend wie in Abbildung 22 ausgegeben werden
Abbildung 22 Uumlbung UDatentypen
214 Guumlltigkeitsbereich
Lokal Variablen die innerhalb einer Methode vereinbart werden haben ihre Guumll-
tigkeit nur in der Methode Auszligerhalb der Methode sind sowohl Name als
auch Wert der Variable unbekannt Solche Variablen bezeichnet man daher
auch als lokale Variablen Sobald die Methode abgearbeitet wurde steht
der Wert auch nicht mehr zur Verfuumlgung Beim naumlchsten Aufruf der glei-
chen Methode werden diese Variablen neu deklariert und erhalten neue
Werte
Klassenweit guumlltig Variablen die auszligerhalb von Methoden vereinbart werden sind innerhalb
der gesamten Klasse guumlltig hier also innerhalb der Klasse des Formulars
Ihr Wert kann in jeder Methode gesetzt oder abgerufen werden und bleibt
solange erhalten wie das Formular im laufenden Programm existiert
private Diese klassenweit guumlltigen Variablen werden mit dem Schluumlsselwort pri-
vate deklariert Weitere Einzelheiten zu klassenweit guumlltigen Variablen fin-
den Sie in Abschnitt 52 Sie sind auszligerhalb der Klasse nicht guumlltig
public Variablen die mit dem Schluumlsselwort public vereinbart werden sind oumlf-
fentlich Damit sind sie auch auszligerhalb der jeweiligen Klasse also z B auch
in anderen Formularen guumlltig Mehr dazu ebenfalls in Abschnitt 52
Gibt es in einem Programmabschnitt mehrere Variablen mit dem gleichen
Namen gelten die folgenden Regeln
Lokale Variablen mit gleichem Namen in der gleichen Methode sind
nicht zulaumlssig
4493book Seite 44 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
45
2
Ausblenden Eine klassenweit guumlltige Variable wird innerhalb einer Methode von
einer lokalen Variablen mit dem gleichen Namen ausgeblendet
Im folgenden Beispiel werden Variablen unterschiedlicher Guumlltigkeitsbe-
reiche deklariert an verschiedenen Stellen veraumlndert und ausgegeben (Pro-
jekt Gueltigkeitsbereich)
public partial class Form1 Form
private int Mx = 0
private void CmdAnzeigen1_Click()
int x = 0Mx = Mx + 1x = x + 1LblAnzeigeText = x + x + Mx + Mx
private void CmdAnzeigen2_Click()
int Mx = 0Mx = Mx + 1LblAnzeigeText = Mx + Mx
Listing 22 Projekt raquoGueltigkeitsbereichlaquo
Zur Erlaumluterung
In der ersten Methode wird der Wert der klassenweit guumlltigen Variablen
Mx bei jedem Aufruf erhoumlht Die lokale Variable x wird immer wieder auf
1 gesetzt (siehe Abbildung 23)
Abbildung 23 Lokale und klassenweit guumlltige Variablen
4493book Seite 45 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
46
In der zweiten Methode blendet die lokale Variable Mx die gleichnamige
klassenweit guumlltige Variable aus Die lokale Variable wird immer wieder
auf 1 gesetzt (siehe Abbildung 24)
Abbildung 24 Lokale Variable
Startwert setzen Hinweis Die Variablen werden vor ihrer ersten Benutzung initialisiert
d h sie werden mit einem Startwert besetzt
Uumlbung
Uumlbung
UGueltigkeits-
bereich
Erstellen Sie ein Programm in dem zwei Buttons ein Label und drei Varia-
blen eines geeigneten Datentyps eingesetzt werden
die klassenweit guumlltige Variable x
die Variable y die nur lokal in der Methode zum Click-Ereignis des ers-
ten Buttons guumlltig ist
die Variable z die nur lokal in der Methode zum Click-Ereignis des zwei-
ten Buttons guumlltig ist
In der ersten Methode werden x und y jeweils um 01 erhoumlht und angezeigt
(siehe Abbildung 25)
Abbildung 25 Ausgabe der ersten Methode nach einigen Klicks
In der zweiten Methode werden x und z jeweils um 01 erhoumlht und ange-
zeigt (siehe Abbildung 26)
4493book Seite 46 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
47
2
Abbildung 26 Ausgabe der zweiten Methode nach weiteren Klicks
215 Konstanten
Konstanten reprauml-
sentieren Werte
Konstanten sind vordefinierte Werte die waumlhrend der Laufzeit nicht ver-
aumlndert werden koumlnnen Am besten geben Sie Konstanten aussagekraumlftige
Namen damit sie leichter zu behalten sind als die Werte die sie repraumlsen-
tieren Konstanten werden an einer zentralen Stelle definiert und koumlnnen
an verschiedenen Stellen des Programms genutzt werden Somit muss eine
eventuelle Aumlnderung einer Konstanten zur Entwurfszeit nur an einer Stelle
erfolgen Der Guumlltigkeitsbereich von Konstanten ist analog zum Guumlltig-
keitsbereich von Variablen
Integrierte
Konstanten
Zu den Konstanten zaumlhlen auch die integrierten Konstanten Auch sie re-
praumlsentieren Zahlen die aber nicht so einpraumlgsam sind wie die Namen der
Konstanten
Im folgenden Beispiel werden mehrere Konstanten vereinbart und genutzt
(Projekt Konstanten)
public partial class Form1 Form
private const int MaxWert = 75private const string Eintrag = Picture
private void CmdKonstanten_Click()
const int MaxWert = 55const int MinWert = 5LblAnzeigeText = (MaxWert - MinWert) 2 + n + Eintrag
Listing 23 Projekt raquoKonstantenlaquo Teil 1
4493book Seite 47 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
48
Zur Erlaumluterung
const Konstanten werden mithilfe des Schluumlsselworts const definiert
Die Konstanten MaxWert und Eintrag werden mit klassenweiter Guumlltig-
keit festgelegt
Innerhalb der Methode werden die beiden lokalen Konstanten MaxWert
und MinWert festgelegt MaxWert blendet die klassenweit guumlltige Konstan-
te gleichen Namens aus wie Sie in Abbildung 27 sehen koumlnnen
Abbildung 27 Konstanten
216 Enumerationen
Konstanten
aufzaumlhlen
Enumerationen sind Aufzaumlhlungen von Konstanten die thematisch zu-
sammengehoumlren Alle Enumerationen haben den gleichen Datentyp der
ganzzahlig sein muss Bei der Deklaration werden ihnen Werte zugewiesen
am besten explizit Innerhalb von Visual Studio gibt es fuumlr C zahlreiche
vordefinierte Enumerationen Aumlhnlich wie bei den integrierten Konstan-
ten sind die Namen der Enumerationen und deren Elemente besser lesbar
als die durch sie repraumlsentierten Zahlen
Ein Beispiel Die Enumeration DialogResult ermoumlglicht dem Programmie-
rer die zahlreichen moumlglichen Antworten des Benutzers beim Einsatz von
Windows-Standarddialogfeldern (Ja Nein Abbrechen Wiederholen
Ignorieren ) anschaulich einzusetzen
Im folgenden Programm wird mit einer eigenen und einer vordefinierten
Enumeration gearbeitet (ebenfalls im Projekt Konstanten)
public partial class Form1 Form
private enum Farbe int
Rot = 1 Gelb = 2 Blau = 3
4493book Seite 48 Mittwoch 8 Maumlrz 2017 112 13
21 Variablen und Datentypen
49
2
private void CmdEnumeration1_Click()
LblAnzeigeText = Farbe + FarbeGelb + + (int)FarbeGelb
private void CmdEnumeration2_Click()
LblAnzeigeText = Sonntag + DayOfWeekSunday + +(int)DayOfWeekSunday + n + Samstag +DayOfWeekSaturday + + (int)DayOfWeekSaturday
Listing 24 Projekt raquoKonstantenlaquo Teil 2
Zur Erlaumluterung
Klassenweit guumlltig Es wird die Enumeration Farbe vom Datentyp int vereinbart Da es sich
um einen Typ handelt und nicht um eine Variable oder Konstante muss
sie auszligerhalb von Methoden vereinbart werden Damit ist sie automa-
tisch fuumlr die gesamte Klasse guumlltig
Cast (int) In der ersten Ereignismethode wird ein Element der eigenen Enumera-
tion Farbe verwendet Zunaumlchst wird der Name des Elements ausgege-
ben Gelb Die Zahl welche das Element repraumlsentiert kann erst nach
einer Umwandlung in den entsprechenden Datentyp ausgegeben wer-
den Diese Umwandlung wird mithilfe eines Casts vorgenommen (int)
(siehe Abbildung 28)
Abbildung 28 Erste Enumeration
DayOfWeek In der zweiten Ereignismethode werden zwei Elemente der vordefinier-
ten Enumeration DayOfWeek verwendet siehe Abbildung 29 Sie koumlnnen
sie zur Ermittlung des Wochentags eines gegebenen Datums verwen-
den
4493book Seite 49 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
50
Abbildung 29 Zweite Enumeration
22 Operatoren
Zum Zusammensetzen von Ausdruumlcken werden in C wie in jeder anderen
Programmiersprache auch Operatoren verwendet In diesem Buch wur-
den bereits die Operatoren = fuumlr Zuweisungen und + fuumlr Verkettungen ge-
nutzt
Prioritaumlt Es gibt verschiedene Kategorien von Operatoren Vorrangregeln (Prio-
ritaumlten) sind fuumlr die Reihenfolge der Abarbeitung zustaumlndig falls mehrere
Operatoren innerhalb eines Ausdrucks verwendet werden Diese Vorrang-
regeln finden Sie weiter unten in diesem Abschnitt Falls Sie sich bei der
Verwendung dieser Regeln nicht sicher sind empfiehlt es sich die Reihen-
folge durch eigene Klammersetzung explizit festzulegen
221 Rechenoperatoren
Rechenoperatoren Rechenoperatoren dienen der Durchfuumlhrung von Berechnungen siehe Ta-
belle 21
Operator Beschreibung
+ Addition
- Subtraktion oder Negation
Multiplikation
Division
Modulo
++ Erhoumlhung um 1
-- Verminderung um 1
Tabelle 21 Rechenoperatoren
4493book Seite 50 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
51
2
GanzzahldivisionBei der Division von zwei ganzen Zahlen sollten Sie beachten dass die
Nachkommastellen abgeschnitten werden Wenn Sie das nicht moumlchten
muumlssen Sie zumindest eine der beiden Zahlen als Zahl mit Nachkomma-
stellen kennzeichnen z B durch Anhaumlngen von 0 Statt 5 schreiben Sie
also 50
ModuloDer Modulo-Operator berechnet den Rest einer Division Einige Beispiele
sehen Sie in Tabelle 22
++ --Die Operatoren ++ und -- dienen als Schreibabkuumlrzung und sollen mithilfe
des Projekts Rechenoperatoren erlaumlutert werden
private void CmdAnzeigen1_Click()
int x = 5x++++xx = x + 1LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
int x = 5LblAnzeigeText = Ergebnis + x++
private void CmdAnzeigen3_Click()
int x = 5LblAnzeigeText = Ergebnis + ++x
Listing 25 Projekt raquoRechenoperatorenlaquo
Ausdruck Ergebnis Erklaumlrung
19 4 3 19 durch 4 ist 4 Rest 3
195 42 27 195 durch 42 ist 4 Rest 27
Tabelle 22 Modulo-Operator
4493book Seite 51 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
52
Zur Erlaumluterung
In der ersten Methode hat x zunaumlchst den Wert 5 Der Wert kann mit ++x
oder mit x++ oder mit x = x + 1 jeweils um 1 erhoumlht werden Anschlieszligend
hat x den Wert 8
x++ In der zweiten Methode wird x zunaumlchst ausgegeben und anschlieszligend
um 1 erhoumlht Das liegt daran dass der Operator ++ hinter x steht In der
Ausgabe sehen Sie noch den alten Wert 5 nach der Anweisungszeile
erhaumllt x den Wert 6
++x In der dritten Methode wird x zunaumlchst um 1 erhoumlht und anschlieszligend
ausgegeben In diesem Fall steht der Operator ++ vor x In der Ausgabe
sehen Sie den neuen Wert 6 nach der Anweisungszeile behaumllt x ebenfalls
den Wert 6
x=x+1 Die Schreibweise x = x + 1 als eigene Anweisungszeile schafft hier Klar-
heit
Fuumlr den Operator -- gilt sinngemaumlszlig das Gleiche
Von links
nach rechts
Multiplikation und Division innerhalb eines Ausdrucks sind gleichrangig
und werden von links nach rechts in der Reihenfolge ihres Auftretens aus-
gewertet Dasselbe gilt fuumlr Additionen und Subtraktionen wenn sie zusam-
men in einem Ausdruck auftreten Multiplikation und Division werden da-
bei vor Addition und Subtraktion ausgefuumlhrt
Klammern Mit Klammern kann diese Rangfolge jedoch auszliger Kraft gesetzt werden
damit bestimmte Teilausdruumlcke vor anderen Teilausdruumlcken ausgewertet
werden In Klammern gesetzte Operationen haben grundsaumltzlich immer
Vorrang Innerhalb der Klammern gilt jedoch wieder die normale Rangfol-
ge der Operatoren
Projekt Im Projekt Rechenoperatoren koumlnnen Sie auch die beiden Berechnungen
mit dem Operator leicht selber nachvollziehen
Uumlbung
Uumlbung
URechenoperatoren
Berechnen Sie die beiden folgenden Ausdruumlcke speichern Sie das Ergebnis
in einer Variablen eines geeigneten Datentyps und zeigen Sie es anschlie-
szligend an
1 Ausdruck 3 ndash25 + 4 2
2 Ausdruck 3 (-25 + 4) 2
4493book Seite 52 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
53
2
222 Vergleichsoperatoren
VergleichVergleichsoperatoren (siehe Tabelle 23) dienen dazu festzustellen ob be-
stimmte Bedingungen zutreffen oder nicht Das Ergebnis kann beispiels-
weise zur Ablaufsteuerung von Programmen genutzt werden In Abschnitt
23 wird hierauf noch genauer eingegangen
ProjektAlle Vergleiche innerhalb dieses Abschnitts koumlnnen Sie auch mithilfe des
Codes im Projekt Vergleichsoperatoren selber nachvollziehen
Uumlbung
Uumlbung
UVergleichs-
operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 12 ndash 3 gt= 4 25
2 Ausdruck Maier = Mayer
Operator Beschreibung
lt kleiner als
lt= kleiner als oder gleich
gt groumlszliger als
gt= groumlszliger als oder gleich
== gleich
= ungleich
Tabelle 23 Einige Beispiele sehen Sie in Tabelle 24
Ausdruck Ergebnis
5 gt 3 true
3 == 32 false
5 + 3 2 gt= 12 false
Maier == Mayer false
Tabelle 24 Nutzung von Vergleichsoperatoren
4493book Seite 53 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
54
223 Logische Operatoren
Logik Logische Operatoren dienen dazu mehrere Bedingungen zusammenzu-
fassen Das Ergebnis kann ebenfalls etwa zur Ablaufsteuerung von Pro-
grammen genutzt werden (siehe hierzu auch Abschnitt 23) Die logischen
Operatoren sehen Sie in Tabelle 25
ampamp || ^ Es seien die Variablen A = 1 B = 3 und C = 5 gesetzt Die Ausdruumlcke in der ers-
ten Spalte von Tabelle 26 ergeben jeweils die Ergebnisse in der zweiten
Spalte
Projekt Alle Berechnungen und Erlaumluterungen innerhalb dieses Abschnitts koumln-
nen Sie auch mithilfe des Codes im Projekt LogischeOperatoren nachvoll-
ziehen
Uumlbung
Uumlbung
ULogische-
Operatoren
Ermitteln Sie das Ergebnis der beiden folgenden Ausdruumlcke speichern Sie
es in einer Variablen eines geeigneten Datentyps und zeigen Sie es an
1 Ausdruck 4 gt 3 ampamp ndash4 gt ndash3
2 Ausdruck 4 gt 3 || ndash4 gt ndash3
Operator Beschreibung Das Ergebnis ist true wenn
Nicht der Ausdruck false ist
ampamp Und beide Ausdruumlcke true sind
|| inklusives Oder mindestens ein Ausdruck true ist
^ exklusives Oder genau ein Ausdruck true ist
Tabelle 25 Logische Operatoren
Ausdruck Ergebnis
(A lt B) false
(B gt A) ampamp (C gt B) true
(B lt A) || (C lt B) false
(B lt A) ^ (C gt B) true
Tabelle 26 Ausdruumlcke mit logischen Operatoren
4493book Seite 54 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
55
2
amp |Sie koumlnnen auch die logischen bitweisen Operatoren amp (statt ampamp) und | (statt
||) verwenden Hierbei werden alle Teile des Vergleichsausdrucks ausge-
wertet Im Gegensatz dazu wird bei den Operatoren ampamp und || die Auswer-
tung abgebrochen sobald sich der Wert des Ausdrucks nicht mehr veraumln-
dern kann Die Ergebnisse unterscheiden sich allerdings nur falls
innerhalb des Vergleichsausdrucks Werte veraumlndert werden z B mit den
Operatoren ++ oder --
224 Verkettungsoperator
Umwandlung in
Zeichenketten
Der Operator + dient der Verkettung von Zeichenketten Ist einer der Aus-
druumlcke keine Zeichenfolge sondern eine Zahl wird er (wenn moumlglich) in
eine Zeichenfolge verwandelt Das Gesamtergebnis ist wiederum eine Zei-
chenfolge Beispiel
private void CmdAnzeige_Click()
string a bdouble dint x
b = Hallod = 46x = -5a = b + Welt + d + + x + + 12LblAnzeigeText = a LblAnzeigeText = x
Listing 26 Projekt raquoVerkettungsoperatorlaquo
Zur Erlaumluterung
Die Zeichenkette a wird aus Variablen und Werten unterschiedlicher Da-
tentypen zusammengesetzt
Die letzte Anweisung ist auskommentiert weil sie zu einem Fehler
fuumlhrt Die int-Variable x kann nicht direkt als Wert fuumlr die Eigenschaft
Text verwendet werden Sie muss zunaumlchst umgewandelt werden
4493book Seite 55 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
56
Das Ergebnis ist in Abbildung 210 zu sehen
Ein weiteres Beispiel hierfuumlr ist uumlbrigens bereits in Abschnitt 145 zu
finden
Abbildung 210 Verkettung
225 Zuweisungsoperatoren
Zeichen = Den einfachsten Zuweisungsoperator das Gleichheitszeichen haben Sie
bereits genutzt Zur Verkuumlrzung von Anweisungen gibt es aber noch weite-
re Zuweisungsoperatoren Eine Auswahl sehen Sie in Tabelle 27
226 Rangfolge der Operatoren
Prioritaumlt Enthaumllt ein Ausdruck mehrere Operationen werden die einzelnen Teilaus-
druumlcke in einer bestimmten Rangfolge ausgewertet und aufgeloumlst die als
Rangfolge bzw Prioritaumlt der Operatoren bezeichnet wird Dabei gilt die in
Tabelle 28 dargestellte Rangfolge
Operator Beispiel Ergebnis
= x = 7 x erhaumllt den Wert 7
+= x += 5 Der Wert von x wird um 5 erhoumlht
-= x -= 5 Der Wert von x wird um 5 verringert
= x = 3 Der Wert von x wird auf das Dreifache erhoumlht
= x = 3 Der Wert von x wird auf ein Drittel verringert
= x = 3 x wird durch 3 geteilt der Rest der Division wird x
zugewiesen
+= z += abc Die Zeichenkette z wird um den Text abc ver-
laumlngert
Tabelle 27 Zuweisungsoperatoren
4493book Seite 56 Mittwoch 8 Maumlrz 2017 112 13
22 Operatoren
57
2
KlammernWie bereits bei den Rechenoperatoren erwaumlhnt Mit Klammern kann diese
Rangfolge auszliger Kraft gesetzt werden damit bestimmte Teilausdruumlcke vor
anderen Teilausdruumlcken ausgewertet werden In Klammern gesetzte Ope-
rationen haben grundsaumltzlich Vorrang Innerhalb der Klammern gilt je-
doch wieder die normale Rangfolge der Operatoren
Uumlbung
Uumlbung
UOperatoren
Sind die Bedingungen in Tabelle 29 wahr oder falsch Loumlsen Sie die Aufga-
be moumlglichst ohne Zuhilfenahme des PC
Operator Beschreibung
- negatives Vorzeichen logisches Nicht
Multiplikation Division Modulo
+ - Addition Subtraktion
lt gt lt= gt= Vergleichsoperatoren fuumlr kleiner und groumlszliger
== = Vergleichsoperatoren fuumlr gleich und ungleich
ampamp logisches Und
|| logisches Oder
Tabelle 28 Je weiter oben die Operatoren in der Tabelle stehen desto houmlher ist
ihre Prioritaumlt
Nr Werte Bedingung
1 a=5 b=10 agt0 ampamp b=10
2 a=5 b=10 agt0 || b=10
3 z=10 w=100 z=0 || zgtw || w-z==90
4 z=10 w=100 z==11 ampamp zgtw || w-z==90
5 x=10 y=57 xgt=9 ampamp ylt=58
6 x=10 y=57 xgt=9 ampamp (ylt=58)
7 n1=1 n2=17 n1gt0 ampamp n2gt0 || n1gtn2 ampamp n2=17
8 n1=1 n2=17 n1gt0 ampamp (n2gt0 || n1gtn2) ampamp n2=17
Tabelle 29 Uumlbung UOperatoren
4493book Seite 57 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
58
23 Einfache Steuerelemente
Windows-Programmierung mit C innerhalb von Visual Studio besteht
prinzipiell aus zwei Teilen der Arbeit mit visuellen Steuerelementen und
der Programmierung mit der Sprache Beides soll in diesem Buch parallel
vermittelt werden um so die eher theoretischen Abschnitte zur Program-
miersprache durch anschauliche Praxisbeispiele zu vertiefen
Daher wird in diesem Abschnitt mit vier weiteren Steuerelementen gearbei-
tet bevor im naumlchsten Abschnitt die Verzweigungen zur Programmsteue-
rung vorgestellt werden den Steuerelementen Panel Zeitgeber Textfeld
und Zahlenauswahlfeld
231 Panel
Container Ein Panel dient normalerweise als Container fuumlr andere Steuerelemente In
unserem Beispiel wird es zur visuellen Darstellung eines Rechtecks und fuumlr
eine kleine Animation genutzt
Die Eigenschaften BackColor (Hintergrundfarbe) Location (Position) und
Size (Groumlszlige) sind Ihnen bereits von anderen Steuerelementen her bekannt
Mithilfe des nachfolgenden Programms im Projekt Panel wird ein Panel
durch Betaumltigung von vier Buttons um 10 Pixel nach oben unten links
oder rechts verschoben Es hat die Groumlszlige 100 times 100 Pixel die Startposition
X=145 und Y=80 sowie eine eigene Hintergrundfarbe Die Bewegung wird
mithilfe der Struktur Point durchgefuumlhrt
In Abbildung 211 und Abbildung 212 ist das Panel im Startzustand bzw
nach einigen Klicks zu sehen
Abbildung 211 Panel Startzustand
4493book Seite 58 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
59
2
Abbildung 212 Panel nach ein paar Klicks
Der Programmcode
private void CmdNachOben_Click()
pLocation = new Point(pLocationX pLocationY - 10)
private void CmdNachLinks_Click()
pLocation = new Point(pLocationX - 10 pLocationY)
private void CmdNachRechts_Click()
pLocation = new Point(pLocationX + 10 pLocationY)
private void CmdNachUnten_Click()
pLocation = new Point(pLocationX pLocationY + 10)
Listing 27 Projekt raquoPanellaquo
232 Zeitgeber
Timer-Intervall
Enabled
Ein Zeitgeber (Timer) erzeugt in festgelegten Abstaumlnden Zeittakte Diese
Zeittakte sind Ereignisse die der Entwickler mit verschiedenen Aktionen
verbinden kann Das zugehoumlrige Ereignis heiszligt Tick Ein Zeitgeber kann wie
jedes andere Steuerelement zum Formular hinzugefuumlgt werden Da es sich
aber beim Zeitgeber um ein nicht sichtbares Steuerelement handelt wird
4493book Seite 59 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
60
er unterhalb des Formulars angezeigt Auch zur Laufzeit ist er nicht sicht-
bar Seine wichtigste Eigenschaft ist das Zeitintervall in dem das Ereignis
auftreten soll Dieses Zeitintervall wird in Millisekunden angegeben Die Ei-
genschaft Enabled dient der Aktivierung bzw Deaktivierung des Zeitgebers
Sie koumlnnen sie zur Entwicklungszeit oder zur Laufzeit auf true oder false
stellen
Im nachfolgenden Programm im Projekt Zeitgeber erscheint zunaumlchst ein
Formular mit zwei Buttons Betaumltigen Sie den Start-Button erscheint ein
x in einem Bezeichnungsfeld Alle 05 Sekunden erscheint automatisch ein
weiteres x siehe Abbildung 213 Dies wird durch den Timer gesteuert bei
welchem der Wert fuumlr die Eigenschaft Interval auf 500 steht Nach Betaumlti-
gung des Stop-Buttons kommt kein weiteres x mehr hinzu
Abbildung 213 Nach einigen Sekunden
Der zugehoumlrige Code
private void CmdStart_Click()
TimAnzeigeEnabled = true
private void CmdStop_Click()
TimAnzeigeEnabled = false
private void TimAnzeige_Tick()
LblAnzeigeText += x
Listing 28 Projekt raquoZeitgeberlaquo
4493book Seite 60 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
61
2
Uumlbung
Uumlbung
UPanelZeitgeber
Erstellen Sie eine Windows-Anwendung In der Mitte eines Formulars sol-
len zu Beginn vier Panels verschiedener Farbe der Groumlszlige 20 times 20 Pixel plat-
ziert werden siehe Abbildung 214
Abbildung 214 Startzustand
Sobald ein Start-Button betaumltigt wird sollen sich diese vier Panels diago-
nal in ca fuumlnf bis zehn Sekunden zu den Ecken des Formulars bewegen je-
des Panel in eine andere Ecke (siehe Abbildung 215)
Abbildung 215 Nach einigen Sekunden
Uumlbung
Uumlbung UKranDiese Uumlbung gehoumlrt nicht zum Pflichtprogramm Sie ist etwas umfangrei-
cher verdeutlicht aber die Moumlglichkeiten einer schnellen Visualisierung
von Prozessen durch C innerhalb von Visual Studio durch einige wenige
Programmzeilen
Konstruieren Sie aus mehreren Panels einen Kran (Fundament senkrech-
tes Hauptelement waagerechter Ausleger senkrechter Haken am Ausle-
ger) Der Benutzer soll die Moumlglichkeit haben uumlber insgesamt acht Buttons
die folgenden Aktionen auszuloumlsen
4493book Seite 61 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
62
Haken um 10 Pixel ausfahren bzw einfahren
Ausleger um 10 Pixel ausfahren bzw einfahren
Kran um 10 Pixel nach rechts bzw links fahren
Kran um 10 Pixel in der Houmlhe ausfahren bzw einfahren
Denken Sie daran dass bei vielen Bewegungen mehrere Steuerelemente
bewegt werden muumlssen da der Kran sonst seinen Zusammenhalt verliert
Manche Aktionen resultieren nur aus Groumlszligenveraumlnderungen (Eigenschaf-
ten Width und Height) andere nur aus Ortsveraumlnderungen (Location) wie-
der andere aus beidem In Abbildung 216 und Abbildung 217 sehen Sie den
Kran im Startzustand bzw nach einigen Klicks
Abbildung 216 Startzustand
Abbildung 217 Nach einigen Aktionen
4493book Seite 62 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
63
2
Manche Bewegungen des Krans werden vermutlich wenig natuumlrlich wir-
ken Mit zunehmendem Programmierwissen werden Sie dieses Problem
spaumlter aber beheben koumlnnen
233 Textfelder
EingabefeldEin Textfeld dient in erster Linie dazu die Eingabe von Text oder Zahlen
vom Benutzer entgegenzunehmen Diese Eingaben werden in der Eigen-
schaft Text des Textfelds gespeichert Das Aussehen und das Verhalten
eines Textfelds werden u a durch folgende Eigenschaften bestimmt
MultiLine Steht MultiLine auf true koumlnnen Sie bei der Eingabe und bei
der Anzeige mit mehreren Textzeilen arbeiten
ScrollBars Sie koumlnnen ein Textfeld mit vertikalen undoder horizonta-
len Bildlaufleisten zur Eingabe und Anzeige laumlngerer Texte versehen
MaxLength Mit dieser Eigenschaft koumlnnen Sie die Anzahl der Zeichen des
Textfelds beschraumlnken Ist keine Beschraumlnkung vorgesehen kann das
Textfeld insgesamt 32768 Zeichen aufnehmen
Passwort PasswordChar Falls Sie fuumlr diese Eigenschaft im Entwurfsmodus ein
Platzhalterzeichen eingegeben haben wird waumlhrend der Laufzeit fuumlr
jedes eingegebene Zeichen nur dieser Platzhalter angezeigt Diese Eigen-
schaft wird vor allem bei Passwortabfragen verwendet
Der Inhalt eines Textfelds kann mit den gewohnten Mitteln (z B (Strg) +
(C) und (Strg) + (V)) in die Zwischenablage kopiert bzw aus der Zwischen-
ablage eingefuumlgt werden
Im nachfolgenden Programm im Projekt Textfelder kann der Benutzer in
einem Textfeld einen Text eingeben Nach Betaumltigung des Buttons Ausga-
be wird der eingegebene Text in einem zusammenhaumlngenden Satz ausge-
geben (siehe Abbildung 218)
Abbildung 218 Eingabe ins Textfeld
4493book Seite 63 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
64
Der Code lautet wie folgt
private void CmdAusgabe_Click()
LblAusgabeText = Sie haben + TxtEingabeText + eingegeben
Listing 29 Projekt raquoTextfelderlaquo
Zur Erlaumluterung
In der Eigenschaft Text des Textfelds wird die Eingabe gespeichert Die
Eigenschaft wird in einen laumlngeren Ausgabetext eingebettet
Zahlen eingeben Bei der Eingabe und Auswertung von Zahlen sind einige Besonderheiten zu
beachten Im nachfolgenden Programm ebenfalls im Projekt Textfelder
kann der Benutzer in einem Textfeld eine Zahl eingeben Nach Betaumltigung
des Buttons Rechnen wird der Wert dieser Zahl verdoppelt das Ergebnis
wird in einem Label darunter ausgegeben
private void CmdRechnen_Click()
double wertwert = ConvertToDouble(TxtEingabeText)wert = wert 2LblAusgabeText = Ergebnis + wert
Listing 210 Projekt raquoTextfelderlaquo Zahleneingabe
Zur Erlaumluterung
ToDouble() Es soll dafuumlr gesorgt werden dass der Inhalt des Textfelds explizit in eine
Zahl (mit moumlglichen Nachkommastellen) umgewandelt wird Das errei-
chen Sie mithilfe der Methode ToDouble() aus der Klasse Convert Die Klasse
Convert bietet eine Reihe von Methoden fuumlr die Umwandlung (sprich Kon-
vertierung) in andere Datentypen
Wenn eine Zeichenkette eingegeben wird die eine Zahl darstellt wird sie
auf die oben angegebene Weise in eine Zahl umgewandelt mit der an-
schlieszligend gerechnet werden kann
4493book Seite 64 Mittwoch 8 Maumlrz 2017 112 13
23 Einfache Steuerelemente
65
2
Stellt die eingegebene Zeichenkette keine Zahl dar kommt es zu einem
Laufzeitfehler Diese Situation sollten Sie natuumlrlich vermeiden
ndash Sie koumlnnen dafuumlr vorher uumlberpruumlfen ob es sich bei der Zeichenkette
um eine guumlltige Zahl handelt und entsprechend reagieren Das wird
Ihnen moumlglich sein sobald Sie die in Abschnitt 23 beschriebenen Ver-
zweigungen zur Programmsteuerung beherrschen
Ausnahme-
behandlung
ndash Allgemein koumlnnen Sie Programme so schreiben dass ein Programm-
abbruch abgefangen wird Dazu werden Sie in der Lage sein sobald
Sie die Ausnahmebehandlung (siehe hierzu Kapitel 3) anwenden koumln-
nen
Einige Beispiele
Abbildung 219 zeigt die Eingabe einer Zahl mit Nachkommastellen
Abbildung 219 Eingabe einer Zahl mit Nachkommastellen
Debugging beendenDie Eingabe einer Zeichenkette wie zum Beispiel raquoabclaquo fuumlhrt zur Anzeige
einer nicht behandelten Ausnahme Die Zeile in welcher der Fehler auftritt
wird im Code markiert damit der Fehler beseitigt werden kann (siehe Ab-
bildung 220)
Abbildung 220 Markierung der Fehlerzeile
Sie koumlnnen die aktuellen Werte von Variablen in diesem Moment der
Unterbrechung kontrollieren indem Sie die Maus uumlber diesen Variablen
4493book Seite 65 Mittwoch 8 Maumlrz 2017 112 13
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
2 Grundlagen
66
platzieren Anschlieszligend muss das Programm uumlber den Menuumlpunkt De-
buggen bull Debugging beenden beendet werden bevor es neu gestartet
werden kann
Die Eingabe einer Zahl bei der ein Punkt anstelle eines Kommas zur Ab-
trennung von Nachkommastellen eingegeben wird fuumlhrt zu einem ganz
anderen Rechenergebnis siehe Abbildung 221
Abbildung 221 Punkt vor den Nachkommastellen
Der Punkt wird ignoriert und die Zahl 352 wird daher als 352 interpretiert
was zu dem Ergebnis 704 fuumlhrt
234 Zahlenauswahlfeld
NumericUpDown Das Steuerelement Zahlenauswahlfeld (NumericUpDown) stellt eine andere
Moumlglichkeit dar Zahlenwerte an ein Programm zu uumlbermitteln Die Zah-
lenwerte koumlnnen innerhalb selbst gewaumlhlter Grenzen und in selbst defi-
nierten Schritten uumlber zwei kleine Pfeiltasten ausgewaumlhlt werden Sie
koumlnnen aber auch weiterhin wie bei einem Textfeld eingegeben werden
Wichtige Eigenschaften des Steuerelements sind
Value Value bezeichnet zur Entwicklungszeit den Startwert und zur Laufzeit
den vom Benutzer aktuell eingestellten Wert
Maximum Minimum bestimmen den groumlszligtmoumlglichen Wert und den kleinst-
moumlglichen Wert der Eigenschaft Value Es handelt sich also um die Wer-
te die durch die Auswahl mit den Pfeiltasten ganz oben und ganz unten
erreicht werden koumlnnen
Increment Mit Increment wird die Schrittweite eingestellt mit der sich
der Wert (Eigenschaft Value) aumlndert wenn der Benutzer eine der kleinen
Pfeiltasten betaumltigt
DecimalPlaces bestimmt die Anzahl der Nachkommastellen in der An-
zeige des Zahlenauswahlfelds
4493book Seite 66 Mittwoch 8 Maumlrz 2017 112 13
24 Verzweigungen
67
2
ValueChangedDas wichtigste Ereignis dieses Steuerelements ist ValueChanged Es tritt bei
der Veraumlnderung der Eigenschaft Value ein und sollte anschlieszligend zur
Programmsteuerung verwendet werden
Im nachfolgenden Programm im Projekt ZahlenAufAb werden alle diese
Eigenschaften und das eben angesprochene Ereignis genutzt Der Benutzer
kann hierbei Zahlenwerte zwischen ndash50 und +50 in Schritten von 01 uumlber
ein Zahlenauswahlfeld einstellen Der ausgewaumlhlte Wert wird unmittelbar
in einem Label angezeigt (siehe Abbildung 222)
Abbildung 222 Zahlenauswahlfeld
Die Eigenschaften werden im Eigenschaftenfenster wie folgt festgelegt
Value Wert 2 die Anwendung startet also bei dem Wert 20 fuumlr das
Zahlenauswahlfeld
Maximum Minimum Werte ndash5 und +5
Increment Wert 01
DecimalPlaces Wert 1 zur Anzeige einer einzelnen Nachkommastelle
Der Code lautet
private void NumEingabe_ValueChanged()
LblAusgabeText = Wert + NumEingabeValue
Listing 211 Projekt raquoZahlenAufAblaquo
24 Verzweigungen
Der Programmcode wird bisher rein sequenziell abgearbeitet also eine
Anweisung nach der anderen Kontrollstrukturen ermoumlglichen eine Steue-
rung dieser Reihenfolge Diese Kontrollstrukturen unterteilen sich in Ver-
zweigungen und Schleifen Verzweigungen gestatten es dem Programm
sich in verschiedene alternative Anweisungsbloumlcke zu verzweigen
4493book Seite 67 Mittwoch 8 Maumlrz 2017 112 13
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
515
Anhang B
Loumlsungen der Uumlbungsaufgaben
Die Bearbeitung der Beispiele das Verstaumlndnis fuumlr ihren Aufbau sowie das
selbststaumlndige Loumlsen der Uumlbungen sind ein wichtiger Schritt beim Erlernen
der Programmierung
In diesem Abschnitt finden Sie jeweils eine Loumlsungsmoumlglichkeit zu jeder
Uumlbung Lassen Sie sich nicht irritieren wenn Ihre Loumlsung anders aussieht
Es ist in erster Linie wichtig dass das Ergebnis stimmt Vielleicht bietet Ih-
nen die hier vorliegende Loumlsung aber auch einen Denkanstoszlig zur Verbes-
serung
B1 Loumlsung der Uumlbungsaufgabe aus Kapitel 1
B11 Loumlsung UName
using Systemusing SystemWindowsFormsnamespace UName
public partial class Form1 Form
public Form1()
InitializeComponent()
private void CmdMeinName_Click(object sender EventArgs e)
LblMeinNameText = Claus Clever
private void CmdEnde_Click(object sender EventArgs e)
4493book Seite 515 Mittwoch 8 Maumlrz 2017 112 13
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
B Loumlsungen der Uumlbungsaufgaben
516
Close()
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
B21 Loumlsung UDatentypen
private void CmdAnzeigen_Click()
string nachname vorname strasse plz ortint alterdouble gehalt
nachname = Clevervorname = Clausstrasse = Bergstraszlige 34plz = 09445ort = Brunnstadtalter = 32gehalt = 285255
LblAnzeigeText = Adresse + n + vorname+ + nachname + n + strasse + n+ plz + + ort + n + n + Alter + alter + n + Gehalt + gehalt
B22 Loumlsung UGueltigkeitsbereich
public partial class Form1 Form
private double x = 00
private void CmdAnzeigen1_Click()
double y = 00
4493book Seite 516 Mittwoch 8 Maumlrz 2017 112 13
B2 Loumlsungen der Uumlbungsaufgaben aus Kapitel 2
517
y = y + 01x = x + 01LblAnzeigeText = x + x + n + y + y
private void CmdAnzeigen2_Click()
double z = 00z = z + 01x = x + 01LblAnzeigeText = x + x + n + z + z
B23 Loumlsung URechenoperatoren
private void CmdAnzeigen1_Click()
double xx = 3 -25 + 4 2LblAnzeigeText = Ergebnis + x
private void CmdAnzeigen2_Click()
double xx = 3 (-25 + 4) 2LblAnzeigeText = Ergebnis + x
B24 Loumlsung UVergleichsoperatoren
private void CmdVergleich1_Click()
bool pp = 12 - 3 gt= 4 25LblAnzeigeText = Ergebnis + p
4493book Seite 517 Mittwoch 8 Maumlrz 2017 112 13
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Auf einen Blick
Auf einen Blick
1 Einfuumlhrung 15
2 Grundlagen 39
3 Fehlerbehandlung 115
4 Erweiterte Grundlagen 129
5 Objektorientierte Programmierung 187
6 Wichtige Klassen in NET 247
7 Weitere Elemente eines Windows-Programms 303
8 Datenbankanwendungen mit ADONET 357
9 Internetanwendungen mit ASPNET 413
10 Zeichnen mit GDI+ 439
11 Beispielprojekte 455
12 Windows Presentation Foundation 481
4493book Seite 3 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
5
Inhalt
1 Einfuumlhrung 15
11 Aufbau dieses Buchs 15
12 Visual Studio 2017 16
13 Mein erstes Windows-Programm 16
14 Visual Studio-Entwicklungsumgebung 17
141 Ein neues Projekt 17
142 Einfuumlgen von Steuerelementen 19
143 Arbeiten mit dem Eigenschaften-Fenster 20
144 Speichern eines Projekts 23
145 Das Codefenster 23
146 Schreiben von Programmcode 26
147 Kommentare 27
148 Starten Ausfuumlhren und Beenden des Programms 28
149 Ausfuumlhrbares Programm 29
1410 Schlieszligen und Oumlffnen eines Projekts 29
1411 Uumlbung 30
1412 Empfehlungen fuumlr Zeilenumbruumlche 30
15 Arbeiten mit Steuerelementen 31
151 Steuerelemente formatieren 31
152 Steuerelemente kopieren 32
153 Eigenschaften zur Laufzeit aumlndern 33
154 Vergabe und Verwendung von Namen 36
155 Verknuumlpfung von Texten mehrzeilige Texte 36
156 Eigenschaft BackColor Farben allgemein 37
2 Grundlagen 39
21 Variablen und Datentypen 39
211 Namen Werte 39
212 Deklarationen 40
213 Datentypen 40
4493book Seite 5 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
6
214 Guumlltigkeitsbereich 44
215 Konstanten 47
216 Enumerationen 48
22 Operatoren 50
221 Rechenoperatoren 50
222 Vergleichsoperatoren 53
223 Logische Operatoren 54
224 Verkettungsoperator 55
225 Zuweisungsoperatoren 56
226 Rangfolge der Operatoren 56
23 Einfache Steuerelemente 58
231 Panel 58
232 Zeitgeber 59
233 Textfelder 63
234 Zahlenauswahlfeld 66
24 Verzweigungen 67
241 ifelse 68
242 switchcase 75
243 Uumlbungen 78
25 Verzweigungen und Steuerelemente 79
251 Kontrollkaumlstchen 79
252 Optionsschaltflaumlchen 82
253 Mehrere Ereignisse in einer Methode behandeln 84
254 Mehrere Gruppen von Optionsschaltflaumlchen 86
255 Methode ohne Ereignis Modularisierung 89
256 Schieberegler 90
26 Schleifen 92
261 for-Schleife 92
262 while- und dowhile-Schleife 95
263 Uumlbungen 98
27 Schleifen und Steuerelemente 101
271 Listenfeld 101
272 Listenfeld fuumlllen 101
273 Wichtige Eigenschaften 102
274 foreach-Schleife 104
275 Wechsel der Auswahl 104
276 Wichtige Methoden 106
4493book Seite 6 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
7
277 Mehrfachauswahl 109
278 Kombinationsfelder 110
3 Fehlerbehandlung 115
31 Entwicklung eines Programms 115
32 Fehlerarten 116
33 Syntaxfehler und IntelliSense 117
34 Laufzeitfehler und Exception Handling 119
341 Programm mit Laufzeitfehlern 119
342 Einfaches Exception Handling 121
343 Erweitertes Exception Handling 123
35 Logische Fehler und Debugging 124
351 Einzelschrittverfahren 124
352 Haltepunkte 126
353 Uumlberwachungsfenster 126
4 Erweiterte Grundlagen 129
41 Steuerelemente aktivieren 129
411 Ereignis Enter 129
412 Eigenschaften Enabled und Visible 132
42 Bedienung per Tastatur 135
421 Eigenschaften TabIndex und TabStop 135
422 Tastenkombination fuumlr Steuerelemente 136
43 Ereignisgesteuerte Programmierung 137
431 Eine Ereigniskette 137
432 Endlose Ereignisketten 139
433 Textfelder koppeln 141
434 Tastatur und Maus 142
44 Datenfelder 144
441 Eindimensionale Datenfelder 144
442 Ein Feld durchsuchen 146
4493book Seite 7 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
8
443 Weitere Feldoperationen 148
444 Mehrdimensionale Datenfelder 150
445 Datenfelder initialisieren 155
446 Verzweigte Datenfelder 156
447 Datenfelder sind dynamisch 158
45 Methoden 160
451 Einfache Methoden 161
452 Uumlbergabe per Referenz 163
453 Methoden mit Ruumlckgabewerten 167
454 Optionale Argumente 169
455 Benannte Argumente 170
456 Beliebig viele Argumente 172
457 Rekursiver Aufruf 173
458 Uumlbungen zu Methoden 176
46 Konsolenanwendung 176
461 Anwendung erzeugen 176
462 Ein- und Ausgabe von Text 177
463 Eingabe einer Zahl 178
464 Erfolgreiche Eingabe einer ganzen Zahl 180
465 Ausgabe formatieren 181
466 Aufruf von der Kommandozeile 183
5 Objektorientierte Programmierung 187
51 Was ist Objektorientierung 187
52 Klasse Eigenschaft Methode Objekt 188
53 Eigenschaftsmethode 192
54 Konstruktor 194
55 Namensraumlume 198
56 Referenzen Vergleiche und Typen 199
561 Referenzen 200
562 Operator == 201
563 Objekte vergleichen 202
564 Typ eines Objekts ermitteln 203
565 Typ eines Objekts durch Vergleich ermitteln 205
4493book Seite 8 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
9
57 Delegates 205
58 Statische Elemente 208
59 Vererbung 211
510 Konstruktoren bei Vererbung 215
511 Polymorphie 217
512 Schnittstellen 221
513 Strukturen 224
514 Generische Typen 228
5141 Eine Liste von Zeichenketten 229
5142 Eine Liste von Objekten 232
5143 Ein Dictionary von Objekten 235
515 Eigene Klassenbibliotheken 238
5151 DLL erstellen 239
5152 DLL nutzen 241
516 Mehrere Formulare 242
6 Wichtige Klassen in NET 247
61 Klasse String fuumlr Zeichenketten 247
611 Eigenschaften der Klasse String 248
612 Trimmen 250
613 Splitten 251
614 Suchen 253
615 Einfuumlgen 256
616 Loumlschen 258
617 Teilzeichenkette ermitteln 259
618 Zeichen ersetzen 261
619 Ausgabe formatieren 262
62 Datum und Uhrzeit 264
621 Eigenschaften von DateTime 264
622 Rechnen mit Datum und Uhrzeit 266
623 DateTimePicker 269
4493book Seite 9 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
10
63 Dateien und Verzeichnisse 272
631 Lesen aus einer Textdatei 272
632 Schreiben in eine Textdatei 274
633 Sicheres Lesen aus einer Textdatei 276
634 Sicheres Schreiben in eine Textdatei 279
635 Die Klassen File und Directory 280
636 Das aktuelle Verzeichnis 281
637 Eine Liste der Dateien 282
638 Eine Liste der Dateien und Verzeichnisse 283
639 Informationen uumlber Dateien und Verzeichnisse 284
6310 Bewegen in der Verzeichnishierarchie 285
64 XML-Dateien 287
641 Aufbau von XML-Dateien 287
642 Schreiben in eine XML-Datei 288
643 Lesen aus einer XML-Datei 290
644 Schreiben von Objekten 292
645 Lesen von Objekten 294
65 Rechnen mit der Klasse Math 296
7 Weitere Elemente eines Windows-Programms 303
71 Hauptmenuuml 303
711 Erstellung des Hauptmenuumls 303
712 Code des Hauptmenuumls 306
713 Klasse Font 308
714 Schriftart 308
715 Schriftgroumlszlige 310
716 Schriftstil 311
72 Kontextmenuuml 312
721 Erstellung des Kontextmenuumls 312
722 Code des Kontextmenuumls 313
73 Symbolleiste 315
731 Erstellung der Symbolleiste 315
732 Code der Symbolleiste 316
4493book Seite 10 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
11
74 Statusleiste 319
741 Erstellung der Statusleiste 319
742 Code der Statusleiste 319
75 Eingabedialogfeld 321
76 Ausgabedialogfeld 325
77 Standarddialogfelder 331
771 Datei oumlffnen 331
772 Datei speichern unter 333
773 Verzeichnis auswaumlhlen 335
774 Farbe auswaumlhlen 337
775 Schrifteigenschaften auswaumlhlen 338
78 Steuerelement ListView 339
79 Steuerelement Chart 343
710 Steuerelement DataGridView 347
711 Lokalisierung 352
8 Datenbankanwendungen mit ADONET 357
81 Was sind relationale Datenbanken 357
811 Beispiel raquoLagerlaquo 357
812 Indizes 360
813 Relationen 362
814 Uumlbungen 366
82 Anlegen einer Datenbank in MS Access 368
821 Aufbau von Access 368
822 Datenbankentwurf in MS Access 2016 369
823 Uumlbungen 374
83 Datenbankzugriff mit C innerhalb von Visual Studio 374
831 Beispieldatenbank 375
832 Ablauf eines Zugriffs 376
833 Verbindung 376
834 SQL-Befehl 377
835 OleDb 377
4493book Seite 11 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
12
836 Auswahlabfrage 378
837 Aktionsabfrage 380
84 SQL-Befehle 382
841 Auswahl mit SELECT 383
842 Aumlndern mit UPDATE 387
843 Loumlschen mit DELETE 388
844 Einfuumlgen mit INSERT 388
845 Typische Fehler in SQL 388
85 Ein Verwaltungsprogramm 390
851 Initialisierung 390
852 Alle Datensaumltze sehen 391
853 Datensatz einfuumlgen 394
854 Datensatz aumlndern 396
855 Datensatz loumlschen 399
856 Datensatz suchen 401
86 Abfragen uumlber mehrere Tabellen 403
861 Datenbankmodell und Tabellen 403
862 Alle Personen 405
863 Anzahl der Kunden 405
864 Alle Kunden mit allen Projekten 405
865 Alle Personen mit allen Projektzeiten 406
866 Alle Personen mit Zeitsumme 407
867 Alle Personen mit allen Personenzeiten 408
868 Alle Projekte mit allen Zeitsumme 409
869 JOIN oder WHERE 409
87 Verbindung zu MySQL 410
871 NET-Treiber 410
9 Internetanwendungen mit ASPNET 413
91 Grundlagen von Internetanwendungen 413
911 Statische Internetanwendungen 413
912 Dynamische Internetanwendungen 414
913 Vorteile von ASPNET 415
4493book Seite 12 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
13
92 Ein lokaler Webserver 415
921 Eine erste Internetanwendung 415
93 Eine erste ASPNET-Anwendung 418
931 Fehlerhafte Programmierung 420
94 Formatierung von Internetseiten 421
95 Senden und Auswerten von Formulardaten 423
96 Weitere Formularelemente 425
97 Ein Kalenderelement 428
98 ASPNET und ADONET 430
99 Datenbank im Internet aumlndern 433
10 Zeichnen mit GDI+ 439
101 Grundlagen von GDI+ 439
102 Linie Rechteck Polygon und Ellipse zeichnen 439
1021 Grundeinstellungen 440
1022 Linie 441
1023 Rechteck 442
1024 Polygon 443
1025 Ellipse 443
1026 Dicke und Farbe aumlndern Zeichnung loumlschen 444
103 Text schreiben 445
104 Bilder darstellen 447
105 Dauerhaft zeichnen 449
106 Zeichnen einer Funktion 451
11 Beispielprojekte 455
111 Spielprogramm Tetris 455
1111 Spielablauf 455
1112 Programmbeschreibung 456
4493book Seite 13 Mittwoch 8 Maumlrz 2017 112 13
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Inhalt
14
1113 Steuerelemente 457
1114 Initialisierung des Programms 458
1115 Erzeugen eines neuen Panels 460
1116 Der Zeitgeber 461
1117 Panels loumlschen 462
1118 Panels seitlich bewegen 466
1119 Panels nach unten bewegen 467
11110 Pause 468
112 Lernprogramm Vokabeln 468
1121 Benutzung des Programms 468
1122 Erweiterung des Programms 470
1123 Initialisierung des Programms 471
1124 Ein Test beginnt 472
1125 Zwei Hilfsmethoden 475
1126 Die Antwort pruumlfen 476
1127 Das Benutzermenuuml 477
12 Windows Presentation Foundation 481
121 Layout 482
122 Steuerelemente 485
123 Frame-Anwendung 488
124 Zweidimensionale Grafik 491
125 Dreidimensionale Grafik 494
126 Animation 498
127 WPF und Windows Forms 501
1271 Windows Forms in WPF 502
1272 WPF in Windows Forms 503
A Installation und technische Hinweise 507
B Loumlsungen der Uumlbungsaufgaben 515
Index 535
4493book Seite 14 Mittwoch 8 Maumlrz 2017 112 13
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
535
Index
- 50
-- 51
^ 54 74 312
_ 385
54
= 53
(int) 49 69
[] 152
[] 145
[][] 157
24
279
50
= 56
50
27
27
= 56
amp 55 136 305
ampamp 54 72
182 263
50 385
= 56
+ 36 50 55
++ 51
+= 56
lt 53 384
lt= 53 384
ltgt 384
-= 56
= 56 384
== 53 153 201
gt 53 384
gt= 53 384
| 55 312
|| 54 73
11-Relation 362
1n-Relation 360 363
3D-Koumlrper 494
A
Abfrage
Datenbank 369
accdb-Datei 370 375
Acos() 297
Add()
Columns 342
Controls 461
Datum und Uhrzeit 267
generische Liste 229 394 461
Items 342
Listenfeld 101
Series 345
SubItems 342
AddHours() 266
Addition 50
AddMilliseconds() 266
AddMonths() 266
AddSeconds() 266
AddXY()
Points 345
AddYears() 266
ADONET 357
Aktionsabfrage 380
Aktivierungsreihenfolge 135
AND 384
Anfuumlhrungszeichen 43
Angle
LabelStyle 346
Animation 498
Anweisung 26
im Block 68
mehrfach durchlaufen 92
Anwendung
abbrechen 181
Konfigurationsdatei 513
mehrsprachig 352
weitergeben 511
Appconfig 513
Append 274
appSettings 513
ArcSegment 493
args 184
4493book Seite 535 Mittwoch 8 Maumlrz 2017 112 13
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
536
Argument 161
beliebig viele 172
benannt 170
optional 169
ArgumentOutOfRangeException 256
Arkusfunktion 297
Array
Klasse 148 158
as 153 246
Asin() 297
asp Calendar 429
asp Label 422
ASPNET 413
Programmierfehler 420
Atan() 297
Attached Event 484
Attached Property 484
AttributeCount
XmlTextReader 291
Auflistung 92
Aufzaumlhlung 48
Ausgabe
Dialogfeld 325
formatieren 181
mehrzeilig 37
Auskommentierung 28
Austauschformat 251
Auswahlabfrage 378
Axis 345
AxisX
ChartArea 345
AxisY
ChartArea 345
B
BackColor 37
base 213
base() 216
Basisklasse 212
Methode erreichen 213
Bedingung 68
Befehlsschaltflaumlche 19
Bericht
Datenbank 369
Bezeichnungsfeld 19
Beziehung 357 360
erstellen 373
Beacutezierkurve 492
Bild in Zeichnung 447
Bildlaufleiste 63
Bitweiser Operator 55
body 417
bool 40
Border Style 22
break 76 93 96
Breakpoint 126
Browser 413
Brush 439
Button 19
Button (Maus) 144
byte 40
C
Calendar 429
Canvas 483
Cascading Style Sheets 414
case 76
Cast 49 69 224 246
catch 122
Ceiling() 297
char 41 250
Chart 343
ChartAreas
Chart 345
ChartImageFormat 347
ChartType
Series 345
CheckBox 79
Internetformular 425
WPF 487
Checked 80 82
in Menuuml 307
CheckedChanged 79 82
Child
WindowsFormsHost 502
class 188
Clear()
generische Liste 393
Series 345
Zeichnung 445
ClickOnce-Verteilung 511
4493book Seite 536 Mittwoch 8 Maumlrz 2017 112 13
Index
537
Clicks (Maus) 144
Clone() 150 221
Close()
Form 27 244
OleDbConnection 377
StreamReader 274
XmlTextReader 291
XmlTextWriter 290
Code
Ansicht 23
auskommentieren 28
editieren 27
Code-Ansicht 482
Collection 228
Color 37 337 338 445
ColorDialog 337
ColumnIndex 352
Columns 349
ListView 342
Combobox 110
CommandText 377
Common Controls 20
Community-Version 507
ConfigurationManager 514
Connection 377
ConnectionString 376 432
MS Access vor 2007 380
Sammlung 411
ConnectorNET 410
Console 178
const 48
Container 58 417
Contains()
generische Liste 229
ContainsKey() 237
ContainsValue() 237
ContextMenuStrip 312
continue 93 96
Controls 246 461
Add() 207
Remove() 207
Convert
ToDouble() 64
ToInt32() 179 324
Cos() 297
Count 102
generische Liste 229
COUNT() 405
Create
Oumlffnungsmodus 274 275
CreateGraphics() 439
cs-Datei 189
CSS 414
CSV-Datei 251
CurrentUICulture 354
D
Data Source 376 411
DataBind() 432
DataGrid 432
DataGridView 347
CellEventArgs 352
ColumnCollection 349
Row 351
RowCollection 349
TextBoxColumn 349
DataSource 432
Datei
Aumlnderungszeitpunkt 281
Erzeugungszeitpunkt 280
Information uumlber 277 280
lesen 272
oumlffnen 274
oumlffnen Dialog 331
schlieszligen 274
speichern 272
speichern Dialog 333
Zugriffszeitpunkt 280
Datenbank 357
Anzahl Datensaumltze 405
Datensaumltze gruppieren 408
erstellen 370
Summe uumlber Datensaumltze 408
verknuumlpfte Abfrage 403
Datenbankdatei 368
Datenbanksystem 360
Datenfeld 144
Dimensionsgroumlszlige 152
durchsuchen 146 150
dynamisch veraumlndern 158
eindimensional 144
initialisieren 155
Klasse 148
kopieren 150
4493book Seite 537 Mittwoch 8 Maumlrz 2017 112 13
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
538
Datenfeld (Forts)
mehrdimensional 150
nicht rechteckig 156
Referenz auf 160
sortieren 150
uumlbergeben 163
Verweis auf 145
verzweigt 156
Datenkapselung 189 214
Datenkonnektivitaumlt 375
Datenpunkt
Chart 345
Datenreihe 345
Datensatz 358
aumlndern 387
auswaumlhlen 383
einfuumlgen 388
loumlschen 388
sortieren 386
Datentyp 40
benutzerdefiniert 224
generisch 228
DateTime 264
DateTimePicker 269
DateTimePickerFormat 269
Datum 264
berechnen 266
Bestandteil 265
eingeben 269
Day 264
DayOfWeek 49 264
DayOfYear 264
Debug 124
beenden 66 121
Debuggen
Konsolenanwendung 185
decimal 40 69
DecimalPlaces 66
default 76
defaultaspx 418
Delegate 205
DELETE 377 388
DESC 386
Description 335
Design-Ansicht 482
Detailtabelle 363
Dezimaltrennzeichen 396
Diagramm 343
DialogResult 326 331
DialogResultOk 333
Dictionary
generisch 235
Dictionarylt gt 237
Directory 280
DivideByZeroException 120
Klasse 124
Division 50
ganzer Zahlen 43
DLL 238
erstellen 239
nutzen 241
do while 95
Doppelklick 26
Double 371
double 40
DrawEllipse() 443
DrawImage() 448
DrawLine() 442
DrawPolygon() 443
DrawRectangle() 442
DrawString() 447
Dreidimensionale Grafik 494
DropDown 110
DropDownList 110
DropDownStyle 110
Dynamic Link Library 238
E
e Exponentialschreibweise 43
E Konstante 297
Eigenschaft 188
aumlndern 18 33
statisch 208
Eigenschaften-Fenster 18 21 84
Eigenschaftsmethode 192
Ein- und Ausgabe 178
Eingabe 63
Dialogfeld 321
einer Zahl 178
Eingabeaufforderung 184
Eingabeformular 423
Einzelschrittverfahren 124
ElementHost 503
ElementPosition 345
4493book Seite 538 Mittwoch 8 Maumlrz 2017 112 13
Index
539
Ellipse 443
else 68
Enabled
Steuerelement 132
Timer 60 468
Enter 129
Entwicklung
eines Programms 115
Enumeration 48
Environment 336
Equals() 202 233
Ereignis 19 23
Ansicht 84
mehrere 84
Tastatur Maus 142
Ereigniskette 137
endlos 139
Ereignismethode
Verweis auf 205
Ereignisprozedur
erzeugen (WPF) 484
Eulersche Zahl 297
Event Routing 484
Event Trigger 498
Exception Handling 119
Exception Klasse 122
ExecuteNonQuery() 378 382
ExecuteReader() 377
exe-Datei 29 184
Exists()
Directory 280
File 277
Exp() 297
Exponentialschreibweise 43
eXtensible Application Markup Language 481
F
f float 43
false 43
Farbe
Dialogfeld 337
Fehler 116
logischer 124
Feld
Datenbank 358
siehe Datenfeld 144
Felddatentyp 371
Feldgroumlszlige 371
Feldname 358
File 277 280
FileMode 274
FileNames 331
FileStream 272
FileSystemEntries() 280
FillEllipse() 443
FillPolygon() 443
FillRectangle() 442
Filter 331
Fixed Single 22
float 40
Floor() 297
Focus() 142
FolderBrowserDialog 335
Font 263 308 338
FontStyle 312
FontDialog 338
FontFamily 311
FontStyleBold 312
FontStyleItalic 312
for 92
foreach 104
Form 17
form (HTML) 424
Form_Activated 131
Form_Load 101
Format
DateTimePicker 269
Format() 262
FormatException 120
Klasse 123
Formatvorlage 414
Formular 17
aktivieren 131
anzeigen 244
Datenbank 369
hinzufuumlgen 242
importieren 510
loumlschen 510
mehrere 242
Start- 510
wird geladen 101
Formularansicht 23
Formularbasierte Ressourcen 352
Formularvorlage 509
4493book Seite 539 Mittwoch 8 Maumlrz 2017 112 13
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
540
Fortschrittsbalken 319
Frame 488
FromArgb() 38 91
FromFile() 447
Image 342
FullRowSelect
ListView 342
Funktion
mathematische 296
zeichnen 451
G
GDI+ 439
Generische Liste 229 232 459
fuumlllen 394
leeren 393
Generischer Datentyp 228
Generisches Dictionary 235
get-Accessor 193
GetCreationTime() 280
GetCurrentDirectory() 280
GetFiles() 280
GetLastAccessTime() 280
GetLastWriteTime() 281
GetType() 203
GetUpperBound() 152
Gleich 53 384
Gleichheitszeichen 26 56
goto case 76
Grafik 491 494
Graphics 439
Grid 490
Groumlszliger als 53 384
GROUP BY 408
GroupBox 87
Guumlltigkeitsbereich 44 162
H
Haltepunkt 126
entfernen 126
Hauptmenuuml 303 468
head 417
Headertext 350
Height 33
hexadezimal 43
Hide() 245
Hilfslinien 31
Hilfstabelle 360
Hoch 297
Hour 264
HTML 413
html 417
HTML-Markierung 417
Hyperlink 491
I
ICloneable 221
id 419
IEquatable 233
if 68
Image 342
auf Button 315
ImageList 342
in Zeichnung 447
ImageList 342
Implementation 221
Increment
NumericUpDown 66
Index
Datenbank 357 360
Datenfeld 146
eindeutig 361
indexhtm 416
IndexOf()
Array 150
generische Liste 229
Zeichenkette 253
IndexOfAny() 253
IndexOutOfRangeException 146
Initial Catalog 411
InitialDirectory 331
InitializeComponent() 25
Inkonsistenz 359
INNER JOIN 406
input 425
InputBox() 321
INSERT 377 388
Insert()
generische Liste 229
ListBox 106
4493book Seite 540 Mittwoch 8 Maumlrz 2017 112 13
Index
541
Insert() (Forts)
Zeichenkette 256
Installation 507
Installationsprogramm 511
Instanziierung 191
int 40
Integritaumlt referentielle 374
IntelliSense 117
Interaction 322
Interface 221
Internetanwendung 413
Daten senden 423
dynamisch 414
erstellen 415
Internetdatenbank 430
aumlndern 433
Internetseite formatieren 421
Interval 60
Timer 321
is 205
IsLoaded 488
IsPostBack 424
Items 101
ListView 342
J
Jahr 264
JavaScript 414
Join
geschachtelt 407
JOIN oder WHERE 409
K
Kalender 428
Kamera 496
KeyCode 144
KeyDown 143
KeyEventArgs 143
Keys 144
Dictionary 238
KeyUp 143
KeyValue 144
Klammer
geschweift 24 68 93
Klammer (Forts)
rund 57
Klasse 25
abgeleitet 212
Definition 188
ermitteln 203 205
Name 188
statisches Element 208
Klassenbibliothek
eigene 238
Klassenhierarchie 211
Kleiner als 53 384
Kombinationsfeld 110
in Menuuml 305
Kommandozeile 183
Aufruf 184
Kommentarzeile 27
Konfigurationsdaten 512
Konsolenanwendung 176
Konstante 47
integriert 47
Konstruktor 194 215
Kontextmenuuml 312
Kontrollkaumlstchen 79
in Menuuml 305
Kontrollstruktur 67
Koordinatensystem 494
Kosinus 297
Kreiszahl 297
L
Label 19
WPF 487
LabelStyle
Axis 346
Language 353
LargeChange
Schieberegler 91
LargeImageList
ListView 342
LastIndexOf() 253
Laufbedingung 93
Laufzeitfehler 119
Layout 482
Legends
Chart 345
4493book Seite 541 Mittwoch 8 Maumlrz 2017 112 13
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
542
Length 248
Licht 496
LIKE 385
LineSegment 493
Linie 442
Listlt gt 230
ListBox 101
WPF 487
ListBoxItem
WPF 488
Liste
generisch 229 232
Listenansicht 339
Listenfeld 101
ListView 339
ListViewItem 342
localhost 417
Localizable 353
Location 33 58
Log() 297
Log10() 297
Logarithmus 297
Lokal 44
Lokalisierung 352
long 40
Long Integer 371
M
m Decimal 43
mn-Relation 363
Main() 177
MainWindowxaml 482
MainWindowxamlcs 484
Margin 484
Markierungssprache 413
Mastertabelle 363
Material 496
Math 296
Maus
Ereignis 142
MaxDate
DateTimePicker 271
Maximum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Maximum (Forts)
Schieberegler 91
MaxLength
Textfeld 63
MaxSize 338
Mehrfachauswahl 109
Steuerelemente 31
switch 75
Mehrfachvererbung 221
Mehrsprachigkeit 352
Menuuml 303
MenuStrip 303
MeshGeometry3D 496
Message 122
MessageBox 325
MessageBoxButtons 326
MessageBoxIcon 326
Methode 161 188
gekapselt 25
mit Ruumlckgabewert 167
ohne Ereignis 89
ohne Ruumlckgabewert 25
statisch 208
uumlberladen 196
verlassen 161
Microsoft Access Database Engine 375
MicrosoftACEOLEDB120 376
Millisecond 264
Millisekunde 264
MinDate
DateTimePicker 271
Minimum
Datenfeld 146
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
MinSize 338
Minute 264
Modal 244
Modularisierung 90 160
Modulo 50
Monat 264
Month 264
MouseDown 144
MouseEventArgs 144
MouseUp 144
MoveToNextAttribute()
XmlTextReader 291
4493book Seite 542 Mittwoch 8 Maumlrz 2017 112 13
Index
543
MS Access 368
2016 370
MultiExtended 109
MultiLine
Textfeld 63
Multiplikation 50
MultiSelect 331
MySQL 410
MySQLData 410
MySqlClient 411
MySqlCommand 411
MySqlConnection 411
MySqlDataReader 411
N
Nachkommastellen 43
NumericUpDown 66
Name 21
Namenskonvention 20 36
Namensraum 25 198
namespace 25 198
NameValueCollection 514
NavigationWindow 489
NET-Treiber 410
new 35 146 191
new line 37
Next() 96
NextDouble() 158
Nicht-Operator 54
NodeType
XmlTextReader 291
NOT 384
Now 264
null 204
NumericUpDown 66
O
object 196 202
Objekt 191
erzeugen 194
identisch 202
initialisieren 207
Verweis auf 145
Objektorientierung 187
Objektverweis 153
dasselbe Objekt 201
vergleichen 382
Oder-Operator 54
Oumlffnungsmodus 274
OleDb 377
OleDbCommand 377
OleDbConnection 376
OleDbReader 378
ON 406
OnSelectionChanged 430
Open 274
Open()
OleDbConnection 377
OpenFileDialog 331
Operator 50
bitweise 55
fuumlr Berechnungen 50
logisch 54 384
Prioritaumlt 56
Rangfolge 56
ternaumlr 71
Vergleich 53 201
Zuweisung 56
option 427
Optionsschaltflaumlche 82
mehrere Gruppen 86
OR 384
ORDER BY 386
out 163
override 197
P
Page 419 490
Page_Load 419
Page-Direktive 419
Paint-Ereignis 449
PaintEventArgs 451
Panel 58 455
Parameter 161
beliebig viele 172
benannt 170
optional 169
params 172
partial 25
4493book Seite 543 Mittwoch 8 Maumlrz 2017 112 13
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
544
PasswordChar
Textfeld 63
Passwortabfrage 63
Path 493
PathFigure 491
PathGeometry 491
Peek() 274
Pen 439
Pfadangabe 279
Pfadgeometrie 491
PI 297
Pinsel 439
Farbe 445
Pixel 33
Platzhalter 385
Point 35 443 452
Points
Series 345
Polygon 443
Polymorphie 217
Position
Legends 345
Pow() 297
PresentationCore 503
PresentationFramework 503
Primaumlrindex 361
Primaumlrschluumlssel erstellen 372
Print()
Printing 347
Printing
Chart 346
PrintingManager
Chart 346
PrintPreview()
Printing 347
private 25 44 163 190
Programcs 177
Programm
beenden 28
starten 28
testen 29
Programmentwicklung 115
Programmierung
clientseitig 414
ereignisgesteuert 137
serverseitig 414
ProgressBar 319
Projekt
Eigenschaften 375
neu (WPF) 481
oumlffnen 29
schlieszligen 29
speichern 23
Verweis hinzufuumlgen 410
Projektmappen-Explorer 18
Projektressourcen 352
Projektvorlage 510
Properties Window 18
Property 193
protected 215
Provider 376
public 25 44 190 215
Q
Queue 228
R
RadioButton 82
Internetformular 425
Random 96
Rangfolge 52
Read() 380
XmlTextReader 291
Reader 378
ReadLine() 178 274
ReadOnly
Textfeld 314
Rechenoperator 50
Rechteck 442
Rectangle 442
Redundanz 359
ref 160 163 200
ReferenceEquals() 382
Referenz 200
Referenztyp 200
Registrierung 508
Rekursion 173
Relation 360
erstellen 373
Relational 357
4493book Seite 544 Mittwoch 8 Maumlrz 2017 112 13
Index
545
Remove()
Controls 466
generische Liste 229
Zeichenkette 258
RemoveAt()
generische Liste 229 477
ListBox 106
Replace()
Zeichenkette 261 396
Resize()
Array 158
Ressource 352 498
resx-Datei 353
return 161
mit Ruumlckgabewert 167
Ringtausch 164
RootFolder 335
Rotationstransformation 498
Round() 297
RowIndex 352
Rows 349 351
Ruumlckgabewert 167
runat 419
runden 297
S
SaveFileDialog 333
SaveImage()
Chart 347
Schalter 79
Schieberegler 90
Schleife 92
endlose 95 98
geschachtelt 152
mit Bedingung 96
naumlchster Durchlauf 93
verlassen 93
Schleifenvariable 92
Schnittstelle 221
Schrift 308
auswaumlhlen 338
Schriftart 308
nicht proportional 262
Schriftgroumlszlige 310
Schriftstil 311
Schrittweite
NumericUpDown 66
script 419
Scrollbalken 101
ScrollBars
Textfeld 63 315
Second 264
Seiten in Frames 488
Sekundaumlrindex 361
Sekunde 264
SELECT 377 379 383
select 427
SelectAll() 142
Selected
DataGridView 349
SelectedDate 429
SelectedIndex 102 311
SelectedIndexChanged 104
SelectedIndices 109
SelectedItem 102
SelectedItems 109
SelectedPath 335
SelectionMode 109 111
Semikolon 251
Separator 305
Series
Chart 345
SeriesChartType 345
Serversteuerelement 421 428
set-Accessor 193
SetCurrentDirectory() 280
short 40
Show() 325
ShowColor 338
ShowDialog() 244 331
ShowNewFolderButton 335
Simple 110
Sin() 297
Single 371
Sinus 297
Size 33 35 309
Slider
WPF 487
sln-Datei 29
SmallChange
Schieberegler 92
SmallImageList
ListView 342
4493book Seite 545 Mittwoch 8 Maumlrz 2017 112 13
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
546
SolidBrush 441
Solution Explorer 18
Sort() 150
SpecialFolder 336
Spin-Button 271
Split() 251
SQL 377
Groszligschrift 377
typische Fehler 388
Sqrt() 297
Stack 228
StackPanel 483
Startausdruck 93
Startformular 510
Startmethode 177
Startparameter 183
Startzustand 22
static 209
Statusleiste 319
StatusStrip 319
Steuerelement 485
Abstand einstellen 32
aktivieren 60 132
Auflistung 246
ausrichten 31
auswaumlhlen 20
einfuumlgen 19
Groumlszlige 33
Hintergrundfarbe 37
Kontextmenuuml 312
kopieren 32
Liste von 461
markieren 31
Position 33 58
sichtbar 132
zur Laufzeit erzeugen 205 455
zur Laufzeit loumlschen 455 466
Stift 439
Dicke 445
Farbe 445
Storyboard 498
StreamReader 272
StreamWriter 274
String 247
string 41
struct 225
Structured Query Language 377
Struktur 224
Stunde 264
Style 309 311
SubItems
ListViewItem 342
submit 425
Substring() 259
Subtract() 269
Subtraktion 50
SUM() 408
Summe berechnen 98
switch 75
Symbolleiste 315
Syntaxfehler 117
SystemCollectionsSpecialized 514
SystemDataOleDb 377 432
SystemDrawing 458
SystemGlobalization 354
SystemIO 272 273 471
SystemResources 356
SystemText 290
SystemThreading 354
SystemXaml 503
SystemXml 289
Systemton 326 329 330
T
Tabelle
darstellen 347
Datenbank 368
Tabellenausgabe 262
Tabellenentwurf 371
TabIndex 135
TabStop 135
Tag der Woche 264
Tag des Jahres 264
Tag des Monats 264
Tan() 297
Tangens 297
Tastatur
Ereignis 142
Tastaturbedienung 135
Taste
Alt 136
F11 124
F5 28
F9 126
4493book Seite 546 Mittwoch 8 Maumlrz 2017 112 13
Index
547
Tasten-Key 498
Tastenkombination
fuumlr Steuerelement 136
Strg C 181
Strg F5 178
Teilzeichenkette 259
Template
Formular 509
Projekt 510
Ternaumlrer Operator 71
Tetris 455
Text
Eigenschaft 21 63 249
in Zeichnung 447
umwandeln 64
verketten 55
TextBox
in Menuuml 305
WPF 487
TextChanged 133 257 311
Textfeld 63
alles auswaumlhlen 142
Aumlnderung 133
kopieren 63
koppeln 141
mehrzeilig 63
ReadOnly 314
this 190 196 244
TickFrequency
Schieberegler 92
TimeOfDay 264
Timer 59 320 455
TimeSpan 266 267
Title 331
title (HTML) 417
TitleAlignment
Axis 346
Today 264
TodayDayStyle 430
ToDouble() 64
ToInt32() 179 324
Toolbox 17
ToolStrip 315
ToolStripComboBox 318
ToShortDateString() 394 429
ToString() 196
Transformation 498
Trennzeichen 251
Trim() 250
TrimEnd() 250
TrimStart() 250
true 43
Truncate() 297
try 122
Typ ermitteln 203 205
Type Converter 483
typeof 204
U
Uumlbergabe
Ausgabeparameter 163
per Referenz 163 200
per Wert 162
Uumlberladen 196
Uumlberschreiben 197
Uumlberwachungsfenster 126
Uhrzeit 264
berechnen 266
UID 411
Umwandlung
in ganze Zahl 324
in Zahl 64
Und-Operator 54
Ungleich 53 384
Unterformular 242
Untermenuuml 303
Unterstrich (Platzhalter) 385
UPDATE 377 382 387
Up-Down-Button 271
using 25 199 273 377
UTF-8 417
V
Value
DataGridView 351
DateTimePicker 271
Fortschrittsbalken 321
NumericUpDown 66
Schieberegler 91
Textfeld (HTML) 424
value
Accessor 193
4493book Seite 547 Mittwoch 8 Maumlrz 2017 112 13
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Index
548
ValueChanged
DateTimePicker 271
NumericUpDown 67
Schieberegler 91
Values
Dictionary 238
VALUES (SQL) 388
Variable 39
ausblenden 45
Guumlltigkeitsbereich 39
Kontrolle 126
Name 39
oumlffentlich 44
Startwert 46
Verbindung
Datenbank 376
Vererbung 211
Vergleichsoperator 384
Verkettung 198
Verknuumlpfung 360
erstellen 373
Verweis 191
auf Ereignismethode 205
auf Nichts 204
umwandeln 153 246
Verweistyp 163
Verzeichnis
Dateiliste 280
ermitteln 280
Existenz 280
Information uumlber 280
Liste 280
setzen 280
waumlhlen Dialog 335
wechseln 285
Verzweigung 67
Vieleck 443
Vielgestaltigkeit 217
View
ListView 339
Visible 132
Visual Studio Community 2017 16
void 25
Vokabel-Lernprogramm 468
Vorlage
WPF 481
W
Wahrheitswert 81
Webserver 414
lokaler 415
WeekendDayStyle 430
Werkzeugkasten 17
Wertebereich 43
Werttyp 163 200
Struktur 224
WHERE 383
while 95
Width 33
Zeichenstift 445
Window 483
Windows Forms in WPF 502
Windows Presentation Foundation 481
Windows 10 16 184
Windows 7 16 184
Windows 8 16 184
WindowsBase 503
WindowsFormsHost 502
WindowsFormsIntegration 503
Wochentag 264
Woumlrterbuch 235
WPF 481
WPF in Windows Forms 503
WrapPanel
WPF 486
Write() 178 276
WriteAttributeString() 290
WriteEndElement() 290
WriteLine() 178 182 276
WriteStartDocument() 290
WriteStartElement() 290
Wurzel 297
X
X (Maus) 144
X Location 33
xClass 483
xName 484
XAML 481
mit Programmiercode 482
XML-Datei 287 512
XML-Knoten 288
4493book Seite 548 Mittwoch 8 Maumlrz 2017 112 13
Index
549
XmlNodeType 291
xmlns 483
XmlTextReader 291
XmlTextWriter 290
Y
Y (Maus) 144
Y Location 33
Year 264
Z
Zahlenauswahlfeld 66 257
Zeichen pruumlfen 274
Zeichenkette 247
durchsuchen 253
einfuumlgen 256
ersetzen 261
Index 250
Zeichenkette (Forts)
Laumlnge 248
loumlschen 258
mit Backslash 278
Teilzeichenkette 259
trimmen 250
zerlegen 251
Zeichenkodierung 417
Zeichnen 439
dauerhaft 449
Zeichnung
loumlschen 445
Zeile
lesen 274
Zeilenumbruch 37
Regeln 30
Zeit 264
Zeitgeber 59
Zeitintervall 267
Zufallsgenerator 96 146 455 468
Zuweisung 26
Zweidimensionale Grafik 491
4493book Seite 549 Mittwoch 8 Maumlrz 2017 112 13
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht
Thomas Theis
Einstieg in C mit Visual Studio 2017 ndash Ideal fuumlr Programmiereinsteiger549 Seiten broschiert 5 Auflage 2017 2990 Euro ISBN 978-3-8362-4493-0
wwwrheinwerk-verlagde4351
Wir hoffen sehr dass Ihnen diese Leseprobe gefallen hat Sie duumlrfen sie gerne emp-fehlen und weitergeben allerdings nur vollstaumlndig mit allen Seiten Bitte beachten Sie dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen koumlnnen Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschuumltzt Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag
Teilen Sie Ihre Leseerfahrung mit uns
Thomas Theis ist Diplom-Ingenieur fuumlr Technische Informatik und hat langjaumlhrige Erfahrung als IT-Dozent unter anderem an der Fachhochschule Aachen Er leitet Schulungen zu CC++ Vi-sual C Visual Basic sowie Webprogrammierung und ist Autor zahlreicher erfolgreicher Fachbuumlcher Einsteiger und Neulinge schaumltzen seine Faumlhigkeit auch komplizierte Sachverhalte leicht verstaumlndlich zu machen und dabei den Spaszlig am Programmieren nie aus den Augen zu verlieren
Wissen wiersquos geht