Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 69

Einstieg in C mit Visual Studio 2015

Ideal für Programmiereinsteiger


geeignet 4th Edition Thomas Theis
Visit to download the full and correct content document:
https://ebookstep.com/product/einstieg-in-c-mit-visual-studio-2015-ideal-fur-program
miereinsteiger-geeignet-4th-edition-thomas-theis/
More products digital (pdf, epub, mobi) instant
download maybe you interests ...

C++ mit Visual Studio 2019: C++17 für Studierende und


erfahrene Programmierer Richard Kaiser

https://ebookstep.com/product/c-mit-visual-studio-2019-c17-fur-
studierende-und-erfahrene-programmierer-richard-kaiser/

C mit Visual Studio 2017 Ein Fach und Lehrbuch für


Standard C 1st Edition Richard Kaiser

https://ebookstep.com/product/c-mit-visual-studio-2017-ein-fach-
und-lehrbuch-fur-standard-c-1st-edition-richard-kaiser/

C mit Visual Studio 2022 und Windows Forms Anwendungen


C 17 für Studierende und erfahrene Programmierer
Windows Programme mit C entwickeln 2nd Edition Richard
Kaiser
https://ebookstep.com/product/c-mit-visual-studio-2022-und-
windows-forms-anwendungen-c-17-fur-studierende-und-erfahrene-
programmierer-windows-programme-mit-c-entwickeln-2nd-edition-
richard-kaiser/

■■■■■■■■■■■■■■■■ ■■ ■■■■■ C ■ ■■■■■ Microsoft Visual


Studio ■■■■■■■■■ 1st Edition ■■■■■■■■ ■.■.

https://ebookstep.com/download/ebook-46781664/
Belajar Visual Basic Net dengan Visual Studio 2010
Rolly Yesputra

https://ebookstep.com/product/belajar-visual-basic-net-dengan-
visual-studio-2010-rolly-yesputra/

Microsoft Access für Einsteiger 2nd Edition Thomas


Theis

https://ebookstep.com/product/microsoft-access-fur-
einsteiger-2nd-edition-thomas-theis/

Klinikleitfaden Rheumatologie. Mit Zugang zur


Medizinwelt 4th Edition Thomas Bitsch

https://ebookstep.com/product/klinikleitfaden-rheumatologie-mit-
zugang-zur-medizinwelt-4th-edition-thomas-bitsch/

■■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■ ■■■■■■■■■■


Microsoft Visual Studio 2010 ■■■■■■■ ■.■.

https://ebookstep.com/download/ebook-5694996/

Materialbearbeitung mit Laser Grundlagen und Verfahren


4th Edition Helmut Hügel Thomas Graf

https://ebookstep.com/product/materialbearbeitung-mit-laser-
grundlagen-und-verfahren-4th-edition-helmut-hugel-thomas-graf/
Thomas Theis

Einstieg in C# mit Visual Studio 2015


Ideal für Programmiereinsteiger geeignet
4., aktualisierte Auflage 2015
Impressum

Dieses E-Book ist ein Verlagsprodukt, an dem viele mitgewirkt haben,


insbesondere:
Lektorat Anne Scheibe
Korrektorat Baris Selcuk, Zell am Main
Herstellung E-Book Melanie Zinsler
Covergestaltung Barbara Thoben, Köln
Coverbild Johannes Kretzschmar, Jena
Satz E-Book SatzPro, Krefeld
Bibliografische Information der Deutschen Nationalbibliothek:
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der
Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind
im Internet über http://dnb.d-nb.de abrufbar.
ISBN 978-3-8362-4037-6
4., aktualisierte Auflage 2015
© Rheinwerk Verlag GmbH, Bonn 2015
Liebe Leserin, lieber Leser,

Sie möchten C# lernen? Eine gute Wahl, denn wegen ihrer großen
Vielseitigkeit und Leistungsfähigkeit ist C# eine der wichtigsten
Programmiersprachen unserer Zeit. Wenn Sie auf schnelle und
praktische Weise lernen möchten, eigene Windows-Programme mit
C# zu entwickeln, ist dieses Buch genau das Richtige für Sie!
Unser Autor Thomas Theis vermittelt Ihnen anhand zahlreicher kleiner
Beispielprogramme zunächst die Grundlagen der C#-Programmierung.
Schritt für Schritt lernen Sie alles, was Sie für Ihre weitere Arbeit
wissen müssen. Vorkenntnisse sind nicht erforderlich. Bereits nach
kurzer Zeit werden Sie Ihr erstes Programm entwickeln, auch wenn
Sie Programmieranfänger sein sollten. Nach und nach werden Sie
dann mit den fortgeschrittenen Themen wie der objektorientierten
Programmierung oder der Entwicklung von Datenbank- und
Internetanwendungen vertraut gemacht. Am Ende beherrschen Sie C#
so gut, dass Sie mühelos auch größere Windows-Programme wie z.
B. einen Taschenrechner oder das Spiel Tetris entwickeln werden.
An zahlreichen Übungsaufgaben können Sie Ihr neu gewonnenes
Wissen direkt testen und vertiefen. Die dazugehörenden
Musterlösungen finden Sie sowohl in Anhang B als auch zusammen
mit dem Code der Beispiele auf www.rheinwerk-verlag.de/3814 unter
»Materialien zum Buch« bzw. im Downloadpaket, das den
elektronischen Ausgaben dieses Buchs beigegeben ist.
Dieses Buch wurde mit großer Sorgfalt geschrieben, geprüft und
produziert. Sollte dennoch einmal etwas nicht so funktionieren, wie Sie
es erwarten, freue ich mich, wenn Sie sich mit mir in Verbindung
setzen. Ihre Kritik und konstruktiven Anregungen sind uns jederzeit
herzlich willkommen!
Viel Spaß beim Lesen und Programmieren Ihrer Webseiten wünscht
Ihnen nun
Anne Scheibe
Lektorat Rheinwerk Computing
[email protected]
www.rheinwerk-verlag.de
Rheinwerk Verlag • Rheinwerkallee 4 • 53227 Bonn
Inhaltsverzeichnis

Leseransprache

Inhaltsverzeichnis

1 Einführung
1.1 Aufbau dieses Buchs

1.2 Visual Studio 2015

1.3 Mein erstes Windows-Programm

1.4 Visual Studio-Entwicklungsumgebung

1.4.1 Ein neues Projekt

1.4.2 Einfügen von Steuerelementen

1.4.3 Arbeiten mit dem Eigenschaften-Fenster

1.4.4 Speichern eines Projekts

1.4.5 Das Codefenster

1.4.6 Schreiben von Programmcode

1.4.7 Kommentare

1.4.8 Starten, Ausführen und Beenden des Programms

1.4.9 Ausführbares Programm

1.4.10 Schließen und Öffnen eines Projekts

1.4.11 Übung
1.4.12 Empfehlungen für Zeilenumbrüche

1.5 Arbeiten mit Steuerelementen

1.5.1 Steuerelemente formatieren

1.5.2 Steuerelemente kopieren

1.5.3 Eigenschaften zur Laufzeit ändern

1.5.4 Vergabe und Verwendung von Namen

1.5.5 Verknüpfung von Texten, mehrzeilige Texte

1.5.6 Eigenschaft BackColor, Farben allgemein

2 Grundlagen
2.1 Variablen und Datentypen

2.1.1 Namen, Werte

2.1.2 Deklarationen

2.1.3 Datentypen

2.1.4 Gültigkeitsbereich

2.1.5 Konstanten

2.1.6 Enumerationen

2.2 Operatoren

2.2.1 Rechenoperatoren

2.2.2 Vergleichsoperatoren

2.2.3 Logische Operatoren


2.2.4 Verkettungsoperator

2.2.5 Zuweisungsoperatoren

2.2.6 Rangfolge der Operatoren

2.3 Einfache Steuerelemente

2.3.1 Panel

2.3.2 Zeitgeber

2.3.3 Textfelder

2.3.4 Zahlenauswahlfeld

2.4 Verzweigungen

2.4.1 if…else

2.4.2 switch…case

2.4.3 Übungen

2.5 Verzweigungen und Steuerelemente

2.5.1 Kontrollkästchen

2.5.2 Optionsschaltflächen

2.5.3 Mehrere Ereignisse in einer Methode behandeln

2.5.4 Mehrere Gruppen von Optionsschaltflächen

2.5.5 Methode ohne Ereignis, Modularisierung

2.5.6 Schieberegler

2.6 Schleifen
2.6.1 for-Schleife

2.6.2 while- und do…while-Schleife

2.6.3 Übungen

2.7 Schleifen und Steuerelemente

2.7.1 Listenfeld

2.7.2 Listenfeld füllen

2.7.3 Wichtige Eigenschaften

2.7.4 foreach-Schleife

2.7.5 Wechsel der Auswahl

2.7.6 Wichtige Methoden

2.7.7 Mehrfachauswahl

2.7.8 Kombinationsfelder

3 Fehlerbehandlung
3.1 Entwicklung eines Programms

3.2 Fehlerarten

3.3 Syntaxfehler und IntelliSense

3.4 Laufzeitfehler und Exception Handling

3.4.1 Programm mit Laufzeitfehlern

3.4.2 Einfaches Exception Handling

3.4.3 Erweitertes Exception Handling


3.5 Logische Fehler und Debugging

3.5.1 Einzelschrittverfahren

3.5.2 Haltepunkte

3.5.3 Überwachungsfenster

4 Erweiterte Grundlagen
4.1 Steuerelemente aktivieren

4.1.1 Ereignis Enter

4.1.2 Eigenschaften Enabled und Visible

4.2 Bedienung per Tastatur

4.2.1 Eigenschaften TabIndex und TabStop

4.2.2 Tastenkombination für Steuerelemente

4.3 Ereignisgesteuerte Programmierung

4.3.1 Eine Ereigniskette

4.3.2 Endlose Ereignisketten

4.3.3 Textfelder koppeln

4.4 Datenfelder

4.4.1 Eindimensionale Datenfelder

4.4.2 Ein Feld durchsuchen

4.4.3 Weitere Feldoperationen

4.4.4 Mehrdimensionale Datenfelder


4.4.5 Datenfelder initialisieren

4.4.6 Verzweigte Datenfelder

4.4.7 Datenfelder sind dynamisch

4.5 Methoden

4.5.1 Einfache Methoden

4.5.2 Übergabe per Referenz

4.5.3 Methoden mit Rückgabewerten

4.5.4 Optionale Argumente

4.5.5 Benannte Argumente

4.5.6 Beliebig viele Argumente

4.5.7 Rekursiver Aufruf

4.5.8 Übungen zu Methoden

4.6 Konsolenanwendung

4.6.1 Anwendung erzeugen

4.6.2 Ein- und Ausgabe von Text

4.6.3 Eingabe einer Zahl

4.6.4 Erfolgreiche Eingabe einer ganzen Zahl

4.6.5 Ausgabe formatieren

4.6.6 Aufruf von der Kommandozeile

5 Objektorientierte Programmierung
5.1 Was ist Objektorientierung?

5.2 Klasse, Eigenschaft, Methode, Objekt

5.3 Eigenschaftsmethode

5.4 Konstruktor

5.5 Namensräume

5.6 Referenzen, Vergleiche und Typen

5.6.1 Referenzen

5.6.2 Operator ==

5.6.3 Objekte vergleichen

5.6.4 Typ eines Objekts ermitteln

5.6.5 Typ eines Objekts durch Vergleich ermitteln

5.7 Delegates

5.8 Statische Elemente

5.9 Vererbung

5.10 Konstruktoren bei Vererbung

5.11 Polymorphie

5.12 Schnittstellen

5.13 Strukturen

5.14 Generische Typen

5.14.1 Eine Liste von Zeichenketten


5.14.2 Eine Liste von Objekten

5.14.3 Ein Dictionary von Objekten

5.15 Eigene Klassenbibliotheken

5.15.1 DLL erstellen

5.15.2 DLL nutzen

5.16 Mehrere Formulare

6 Wichtige Klassen in .NET


6.1 Klasse String für Zeichenketten

6.1.1 Eigenschaften der Klasse String

6.1.2 Trimmen

6.1.3 Splitten

6.1.4 Suchen

6.1.5 Einfügen

6.1.6 Löschen

6.1.7 Teilzeichenkette ermitteln

6.1.8 Zeichen ersetzen

6.1.9 Ausgabe formatieren

6.2 Datum und Uhrzeit

6.2.1 Eigenschaften von DateTime

6.2.2 Rechnen mit Datum und Uhrzeit


6.2.3 DateTimePicker

6.3 Dateien und Verzeichnisse

6.3.1 Lesen aus einer Textdatei

6.3.2 Schreiben in eine Textdatei

6.3.3 Sicheres Lesen aus einer Textdatei

6.3.4 Sicheres Schreiben in eine Textdatei

6.3.5 Die Klassen File und Directory

6.3.6 Das aktuelle Verzeichnis

6.3.7 Eine Liste der Dateien

6.3.8 Eine Liste der Dateien und Verzeichnisse

6.3.9 Informationen über Dateien und Verzeichnisse

6.3.10 Bewegen in der Verzeichnishierarchie

6.4 XML-Dateien

6.4.1 Aufbau von XML-Dateien

6.4.2 Schreiben in eine XML-Datei

6.4.3 Lesen aus einer XML-Datei

6.4.4 Schreiben von Objekten

6.4.5 Lesen von Objekten

6.5 Rechnen mit der Klasse Math

6.6 Zugriff auf MS Office


6.6.1 MS Word-Datei erstellen

6.6.2 MS Word-Datei lesen

6.6.3 MS Excel-Datei erstellen

6.6.4 MS Excel-Datei lesen

7 Weitere Elemente eines Windows‐Programms


7.1 Hauptmenü

7.1.1 Erstellung des Hauptmenüs

7.1.2 Code des Hauptmenüs

7.1.3 Klasse Font

7.1.4 Schriftart

7.1.5 Schriftgröße

7.1.6 Schriftstil

7.2 Kontextmenü

7.2.1 Erstellung des Kontextmenüs

7.2.2 Code des Kontextmenüs

7.3 Symbolleiste

7.3.1 Erstellung der Symbolleiste

7.3.2 Code der Symbolleiste

7.4 Statusleiste

7.4.1 Erstellung der Statusleiste


7.4.2 Code der Statusleiste

7.5 Eingabedialogfeld

7.6 Ausgabedialogfeld

7.7 Standarddialogfelder

7.7.1 Datei öffnen

7.7.2 Datei speichern unter

7.7.3 Verzeichnis auswählen

7.7.4 Farbe auswählen

7.7.5 Schrifteigenschaften auswählen

7.8 Steuerelement ListView

7.9 Steuerelement Chart

7.10 Steuerelement DataGridView

7.11 Lokalisierung

8 Datenbankanwendungen mit ADO.NET


8.1 Was sind relationale Datenbanken?

8.1.1 Beispiel »Lager«

8.1.2 Indizes

8.1.3 Relationen

8.1.4 Übungen

8.2 Anlegen einer Datenbank in Microsoft Access


8.2.1 Aufbau von Access

8.2.2 Datenbankentwurf in MS Access 2013

8.2.3 Übungen

8.3 Datenbankzugriff mit C# innerhalb von Visual Studio

8.3.1 Beispieldatenbank

8.3.2 Ablauf eines Zugriffs

8.3.3 Verbindung

8.3.4 SQL-Befehl

8.3.5 OleDb

8.3.6 Auswahlabfrage

8.3.7 Aktionsabfrage

8.4 SQL-Befehle

8.4.1 Auswahl mit SELECT

8.4.2 Ändern mit UPDATE

8.4.3 Löschen mit DELETE

8.4.4 Einfügen mit INSERT

8.4.5 Typische Fehler in SQL

8.5 Ein Verwaltungsprogramm

8.5.1 Initialisierung

8.5.2 Alle Datensätze sehen


8.5.3 Datensatz einfügen

8.5.4 Datensatz ändern

8.5.5 Datensatz löschen

8.5.6 Datensatz suchen

8.6 Abfragen über mehrere Tabellen

8.7 Verbindung zu MySQL

8.7.1 .NET-Treiber

9 Internetanwendungen mit ASP.NET


9.1 Grundlagen von Internetanwendungen

9.1.1 Statische Internetanwendungen

9.1.2 Dynamische Internetanwendungen

9.1.3 Vorteile von ASP.NET

9.2 Ein lokaler Webserver

9.2.1 Eine erste Internetanwendung

9.3 Eine erste ASP.NET-Anwendung

9.3.1 Fehlerhafte Programmierung

9.4 Formatierung von Internetseiten

9.5 Senden und Auswerten von Formulardaten

9.6 Weitere Formularelemente

9.7 Ein Kalenderelement


9.8 ASP.NET und ADO.NET

9.9 Datenbank im Internet ändern

10 Zeichnen mit GDI+


10.1 Grundlagen von GDI+

10.2 Linie, Rechteck, Polygon und Ellipse zeichnen

10.2.1 Grundeinstellungen

10.2.2 Linie

10.2.3 Rechteck

10.2.4 Polygon

10.2.5 Ellipse

10.2.6 Dicke und Farbe ändern, Zeichnung löschen

10.3 Text schreiben

10.4 Bilder darstellen

10.5 Dauerhaft zeichnen

10.6 Zeichnen einer Funktion

11 Beispielprojekte
11.1 Spielprogramm Tetris

11.1.1 Spielablauf

11.1.2 Programmbeschreibung

11.1.3 Steuerelemente
11.1.4 Initialisierung des Programms

11.1.5 Erzeugen eines neuen Panels

11.1.6 Der Zeitgeber

11.1.7 Panels löschen

11.1.8 Panels seitlich bewegen

11.1.9 Panels nach unten bewegen

11.1.10 Pause

11.2 Lernprogramm Vokabeln

11.2.1 Benutzung des Programms

11.2.2 Erweiterung des Programms

11.2.3 Initialisierung des Programms

11.2.4 Ein Test beginnt

11.2.5 Zwei Hilfsmethoden

11.2.6 Die Antwort prüfen

11.2.7 Das Benutzermenü

12 Windows Presentation Foundation


12.1 Layout

12.2 Steuerelemente

12.3 Frame-Anwendung

12.4 Zweidimensionale Grafik


12.5 Dreidimensionale Grafik

12.6 Animation

12.7 WPF und Windows Forms

12.7.1 Windows Forms in WPF

12.7.2 WPF in Windows Forms

A Installation und technische Hinweise


A.1 Installation von Visual Studio Community 2015

A.2 Arbeiten mit einer Formularvorlage

A.3 Arbeiten mit einer Projektvorlage

A.4 Weitergabe eigener Windows-Programme

A.4.1 Erstellung des Installationsprogramms

A.4.2 Ablauf einer Installation

A.5 Konfigurationsdaten

B Lösungen der Übungsaufgaben


B.1 Lösung der Übungsaufgabe aus Kapitel 1

B.1.1 Lösung ÜName

B.2 Lösungen der Übungsaufgaben aus Kapitel 2

B.2.1 Lösung ÜDatentypen

B.2.2 Lösung ÜGültigkeitsbereich


B.2.3 Lösung ÜRechenoperatoren

B.2.4 Lösung ÜVergleichsoperatoren

B.2.5 Lösung ÜLogischeOperatoren

B.2.6 Lösung ÜOperatoren

B.2.7 Lösung ÜPanelZeitgeber

B.2.8 Lösung ÜKran

B.2.9 Lösung ÜSteuerbetrag

B.2.10 Lösung ÜKranVerzweigung

B.2.11 Lösung ÜKranOptionen

B.2.12 Lösung ÜForSchleife, Teil 1

B.2.13 Lösung ÜForSchleife, Teil 2

B.2.14 Lösung ÜHalbierung

B.2.15 Lösung ÜZahlenraten

B.2.16 Lösung ÜSteuertabelle

B.2.17 Lösung ÜListenfeld

B.3 Lösungen der Übungsaufgaben aus Kapitel 4

B.3.1 Lösung ÜEnabled

B.3.2 Lösung ÜDatenfeldEindimensional

B.3.3 Lösung ÜDatenfeldMehrdimensional

B.3.4 Lösung ÜMethoden, Teil 1

B.3.5 Lösung ÜMethoden, Teil 2


B.4 Lösungen der Übungsaufgaben aus Kapitel 8

B.4.1 Lösung zur Übung Projektverwaltung

B.4.2 Lösung zur Übung Mietwagen

Stichwortverzeichnis

Rechtliche Hinweise

Autorenseite
1 Einführung

In diesem Kapitel erlernen Sie anhand eines ersten Projekts den


Umgang mit der Entwicklungsumgebung und den Steuerelementen.
Anschließend werden Sie in der Lage sein, Ihr erstes eigenes
Windows-Programm zu erstellen.
C# ist eine objektorientierte Programmiersprache, die von Microsoft im
Zusammenhang mit dem .NET Framework eingeführt wurde. Mithilfe
der Entwicklungsumgebung Visual Studio 2015 können Sie unter
anderem in der Sprache C# programmieren. Visual Studio 2015 ist der
Nachfolger von Visual Studio 2013. Innerhalb von Visual Studio stehen
Ihnen noch weitere Sprachen zur Programmentwicklung zur
Verfügung.

1.1 Aufbau dieses Buchs

Dieses Buch vermittelt Ihnen zunächst einen einfachen Einstieg in die


Programmierung mit C# und Visual Studio 2015. Die Bearbeitung der
Beispiele und das selbstständige Lösen der vorliegenden
Übungsaufgaben helfen dabei. Dadurch werden Sie schnell erste
Erfolgserlebnisse haben, die Sie zum Weitermachen motivieren. In
späteren Kapiteln werden Ihnen dann zunehmend auch komplexere
Themen vermittelt.
Von Anfang an wird mit anschaulichen Windows-Anwendungen
gearbeitet. Die Grundlagen der Programmiersprache und die
Standardelemente einer Windows-Anwendung, wie Sie sie schon von
anderen Windows-Programmen her kennen, werden gemeinsam
vermittelt. Die Anschaulichkeit einer Windows-Anwendung hilft dabei,
den eher theoretischen Hintergrund der Programmiersprache leichter
zu verstehen.
1.2 Visual Studio 2015

Für dieses Buch wird die frei verfügbare Entwicklungsumgebung


Visual Studio Community 2015 eingesetzt. Sie können sie unter
Windows 7 bis einschließlich Windows 10 nutzen. Diese Version von
Visual Studio können Sie bei Microsoft herunterladen
(www.visualstudio.com/de-de) und auf Ihrem PC installieren. Eine
Installationsanleitung finden Sie in Anhang A. Die Projekte in diesem
Buch wurden unter Windows 10 bearbeitet. Auch die Screenshots sind
unter dieser Windows-Version entstanden.
Visual Studio 2015 bietet eine komfortable Entwicklungsumgebung.
Sie umfasst einen Editor zur Erstellung des Programmcodes, einen
Compiler zur Erstellung der ausführbaren Programme, einen
Debugger zur Fehlersuche und vieles mehr. Eine Anleitung zur
Installation finden Sie im Anhang.
Statt der hier empfohlenen Community-Version können Sie alternativ
auch verschiedene frei verfügbare Express-Versionen von Visual
Studio 2015 nutzen. Sie können sie von der Microsoft-Internetseite
per Web-Installer auf Ihrem Rechner installieren.
Noch eine Anmerkung in eigener Sache: Für die Hilfe bei der
Erstellung dieses Buchs bedanke ich mich beim Team des Rheinwerk
Verlags, besonders bei Anne Scheibe.
Thomas Theis
1.3 Mein erstes Windows-Programm

Anhand eines ersten Projekts werden Sie nun die verschiedenen


Schritte durchlaufen, die zur Erstellung eines einfachen Programms
mit C# in Visual Studio notwendig sind. Das Programm soll nach dem
Aufruf zunächst so aussehen wie in Abbildung 1.1 gezeigt.

Abbildung 1.1 Erstes Programm nach dem Aufruf


Nach Betätigung des Buttons Hallo soll sich dann der Text in der
obersten Zeile entsprechend verändern (siehe Abbildung 1.2).

Abbildung 1.2 Nach einem Klick auf den Button »Hallo«


1.4 Visual Studio-Entwicklungsumgebung

Während der Projekterstellung werden Sie die Visual Studio-


Entwicklungsumgebung Schritt für Schritt kennenlernen.

1.4.1 Ein neues Projekt

Nach dem Aufruf des Programms Visual Studio Community 2015


müssen Sie zur Erstellung eines neuen C#-Projekts den Menüpunkt
Datei • Neues Projekt • Installiert • Vorlagen • Visual C# •
Windows Forms-Anwendung auswählen. Als Projektname bietet die
Entwicklungsumgebung den Namen WindowsFormsApplication1 an,
dieser sollte der Übersichtlichkeit halber geändert werden, zum
Beispiel in MeinErstes.
Es erscheinen nun einige Elemente der Entwicklungsumgebung.
Folgende sind besonders wichtig:

Das Benutzerformular (engl. Form) enthält die Oberfläche für


den Benutzer des Programms (siehe Abbildung 1.3).

Abbildung 1.3 Benutzerformular


Der Werkzeugkasten (engl. Toolbox) enthält die
Steuerelemente für den Benutzer, mit denen er den Ablauf des
Programms steuern kann. Sie werden vom Programmentwickler
in das Formular eingefügt (siehe Abbildung 1.4).
Abbildung 1.4 Der »Werkzeugkasten« mit verschiedenen
Kategorien von Steuerelementen
Das Eigenschaften-Fenster (engl. Properties Window) dient
dem Anzeigen und Ändern der Eigenschaften von
Steuerelementen innerhalb des Formulars durch den
Programmentwickler (siehe Abbildung 1.5). Ich empfehle Ihnen,
sich die Eigenschaften in alphabetischer Reihenfolge anzeigen
zu lassen. Betätigen Sie dazu einfach unter Form1 das zweite
Symbol von links.

Abbildung 1.5 Eigenschaften-Fenster


Der Projektmappen-Explorer (engl. Solution Explorer) zeigt
das geöffnete Projekt und die darin vorhandenen Elemente
(siehe Abbildung 1.6).
Abbildung 1.6 Projektmappen-Explorer
Sollte der Werkzeugkasten, das Eigenschaften-Fenster oder der
Projektmappen-Explorer nicht angezeigt werden, dann können Sie
das betreffende Element über das Menü Ansicht einblenden. Ist das
Formular nicht sichtbar, blenden Sie es einfach über einen Doppelklick
auf den Namen (Form1.cs) im Projektmappen-Explorer ein. Sollten
die Eigenschaften eines Steuerelements nicht im bereits sichtbaren
Eigenschaften-Fenster angezeigt werden, dann markieren Sie
zunächst den Namen der Formulardatei (Form1.cs) im
Projektmappen-Explorer und anschließend das betreffende
Steuerelement.
Anfangs schreiben Sie nur einfache Programme mit wenigen
Elementen, daher benötigen Sie den Projektmappen-Explorer jetzt
noch nicht. Es empfiehlt sich, das Eigenschaften-Fenster nach oben
zu vergrößern.

1.4.2 Einfügen von Steuerelementen

Zunächst sollen drei Steuerelemente in das Formular eingefügt


werden: ein Bezeichnungsfeld (Label) und zwei Befehlsschaltflächen
(Buttons). Ein Bezeichnungsfeld dient im Allgemeinen dazu, feste oder
veränderliche Texte auf der Benutzeroberfläche anzuzeigen. In
diesem Programm soll das Label einen Text anzeigen. Ein Button
dient zum Starten bestimmter Programmteile oder, allgemeiner
ausgedrückt, zum Auslösen von Ereignissen. In diesem Programm
sollen die Buttons dazu dienen, den Text anzuzeigen bzw. das
Programm zu beenden.
Um ein Steuerelement einzufügen, ziehen Sie es mithilfe der Maus
aus dem Werkzeugkasten an die gewünschte Stelle im Formular. Alle
Steuerelemente finden sich im Werkzeugkasten unter Alle Windows
Forms. Übersichtlicher ist jedoch der Zugriff über Allgemeine
Steuerelemente (engl. Common Controls), siehe Abbildung 1.7.

Abbildung 1.7 »Allgemeine Steuerelemente« im »Werkzeugkasten«


Ein Doppelklick auf ein Steuerelement im Werkzeugkasten fügt es
ebenfalls in die Form ein. Position und Größe des Elements können
anschließend noch verändert werden. Dazu wählen Sie das
betreffende Steuerelement vorher durch Anklicken aus (siehe
Abbildung 1.8). Ein überflüssiges Steuerelement können Sie durch
Auswählen und Drücken der Taste (Entf) entfernen.

Abbildung 1.8 Ausgewählter Button


Die Größe und andere Eigenschaften des Formulars selbst können
Sie ebenfalls verändern. Dazu wählen Sie es vorher durch Anklicken
einer freien Stelle im Formular aus.

1.4.3 Arbeiten mit dem Eigenschaften-Fenster


Die eingefügten Steuerelemente haben zunächst einheitliche Namen
und Aufschriften, diese sollten Sie allerdings zur einfacheren
Programmentwicklung ändern. Es haben sich bestimmte
Namenskonventionen eingebürgert, welche die Lesbarkeit erleichtern.
Diese Namen beinhalten den Typ (mit drei Buchstaben abgekürzt) und
die Aufgabe des Steuerelements (mit großem Anfangsbuchstaben).
Ein Button (eigentlich Command Button), der die Anzeige der Zeit
auslösen soll, wird beispielsweise mit cmdZeit bezeichnet. Weitere
Vorsilben sind txt (Textfeld/TextBox), lbl (Bezeichnungsfeld/Label),
opt (Optionsschaltfläche/RadioButton), frm (Formular/Form) und chk
(Kontrollkästchen/CheckBox).
Zur Änderung des Namens eines Steuerelements muss es zunächst
ausgewählt werden. Das können Sie entweder durch Anklicken des
Steuerelements auf dem Formular oder durch Auswahl desselben aus
der Liste am oberen Ende des Eigenschaften-Fensters tun.
Im Eigenschaften-Fenster werden alle Eigenschaften des
ausgewählten Steuerelements angezeigt. Die Liste ist zweispaltig: In
der linken Spalte steht der Name der Eigenschaft, in der rechten ihr
aktueller Wert. Die Eigenschaft (Name) steht am Anfang der Liste der
Eigenschaften. Die betreffende Zeile wählen Sie durch Anklicken aus
und geben hier den neuen Namen ein. Nach Bestätigung mit der
Taste (¢) ist die Eigenschaft geändert (siehe Abbildung 1.9).

Abbildung 1.9 Button nach der Namensänderung


Die Aufschrift von Buttons, Labels und Formularen ist in der
Eigenschaft Text angegeben. Sobald diese Eigenschaft verändert
wird, erscheint die veränderte Aufschrift in dem betreffenden
Steuerelement. Auch der Name und die Aufschrift des Formulars
sollten geändert werden. Im Folgenden sind die gewünschten
Eigenschaften für die Steuerelemente dieses Programms in
Tabellenform angegeben, siehe Tabelle 1.1.

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 1.1 Steuerelemente mit Eigenschaften


Hiermit legen Sie den Startzustand fest, also die Eigenschaften,
welche die Steuerelemente zu Beginn des Programms bzw. eventuell
während des gesamten Programms haben sollen. Viele Eigenschaften
können Sie auch noch während der Laufzeit des Programms durch
den Programmcode verändern.
Bei einem Label ergibt die Einstellung der Eigenschaft BorderStyle auf
FixedSingle einen Rahmen. Zur Änderung auf FixedSingle klappen
Sie die Liste bei der Eigenschaft auf und wählen den betreffenden
Eintrag aus, siehe Abbildung 1.10. Zur Änderung einiger
Eigenschaften müssen Sie gegebenenfalls ein Dialogfeld aufrufen.
Abbildung 1.10 Label nach der Änderung von Name und
BorderStyle
Im Label soll zunächst der Text (leer) erscheinen. Hierzu wählen Sie
den vorhandenen Text durch Anklicken aus und ändern ihn.
Sie finden alle in diesem Formular vorhandenen Steuerelemente in der
Liste, die sich am oberen Ende des Eigenschaften-Fensters öffnen
lässt. Dabei zeigt sich ein Vorteil der einheitlichen Namensvergabe:
Die Steuerelemente des gleichen Typs stehen immer direkt
untereinander.

1.4.4 Speichern eines Projekts

Die Daten eines C#-Projekts werden innerhalb von Visual Studio in


verschiedenen Dateien gespeichert. Zum Speichern des gesamten
Projekts verwenden Sie den Menüpunkt Datei • Alles Speichern.
Diesen Vorgang sollten Sie in regelmäßigen Abständen durchführen,
damit keine Änderungen verloren gehen können.
Die in diesem Skript angegebenen Namen erleichtern eine schnelle
und eindeutige Orientierung und das spätere Auffinden von älteren
Programmen.
1.4.5 Das Codefenster

Der Ablauf eines Windows-Programms wird im Wesentlichen durch


das Auslösen von Ereignissen durch den Benutzer gesteuert. Er löst
z. B. die Anzeige des Texts Hallo aus, indem er auf den Button Hallo
klickt. Der Entwickler muss dafür sorgen, dass aufgrund dieses
Ereignisses auch tatsächlich der gewünschte 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.
Zum Schreiben einer Ereignismethode führen Sie am besten einen
Doppelklick auf dem betreffenden Steuerelement aus. Daraufhin
erscheint das Codefenster. Zwischen der Formularansicht und der
Codeansicht können Sie anschließend über die Menüpunkte Ansicht •
Code bzw. Ansicht • Designer hin- und herschalten. Das ist auch
über die Registerkarten oberhalb des Formulars bzw. des
Codefensters möglich (siehe Abbildung 1.11).

Abbildung 1.11 Registerkarten


Nach erfolgtem Doppelklick auf den Button Hallo erscheinen im
Codefenster die folgenden Einträge:

using System;

using System.Windows.Forms;

namespace MeinErstes

public partial class Form1 : Form

{
public Form1()

InitializeComponent();

private void cmdHallo_Click(object sender, EventArgs e)

Listing 1.1 Projekt »MeinErstes«, Button »Hallo«, ohne Code


Zur Erläuterung:

Grundsätzlich gilt, dass Sie sich nicht von der Vielzahl der
automatisch erzeugten Zeilen und den noch unbekannten
Inhalten abschrecken lassen sollten.
Zunächst das Wichtigste: Innerhalb der geschweiften Klammern
{ } der Ereignismethode cmdHallo_Click() wird später Ihr
eigener Programmcode hinzugefügt.
Zu den anderen Bestandteilen (die erst später für das eigene
Programmieren wichtig werden):

C# ist eine objektorientierte Sprache. Ein wichtiges Element


objektorientierter Sprachen sind die so genannten Klassen.
Klassen eröffnen weitere Programmiermöglichkeiten.
Namensräume wiederum beinhalten zusammengehörige
Klassen.
In obigem Listing können Sie erkennen, dass einige
Programmzeilen, die mit using beginnen, bereits entfernt
wurden. Das Schlüsselwort using dient zum Einbinden von
Namensräumen in das aktuelle Projekt. Da wir die Klassen in
diesen Namensräumen nicht benötigen, wurden die betreffenden
Zeilen entfernt.
Seit der Version 2015 von Visual Studio werden solche
überflüssigen Elemente in grauer Schriftfarbe dargestellt. Falls
sich der Cursor in einer der betreffenden Zeilen befindet,
erscheint links von der Zeile eine gelbe Glühbirne. Platzieren Sie
den Mauszeiger über dieser Glühbirne, können Sie sich
Hinweise dazu anzeigen lassen, wie die überflüssigen Elemente
ganz entfernt werden können.
Oberhalb von public partial class … und von private void …
erscheinen außerdem seit Visual Studio 2015 automatisch
weitere Informationen zur Klasse Form1 und ihren Elementen in
kleiner grauer Schrift, wie zum Beispiel 0 references oder 3
references. Auch diese können wir zunächst noch ignorieren.
Dieses erste Projekt verfügt über einen eigenen Namensraum
(engl. namespace), daher namespace MeinErstes.
Alle Elemente des aktuellen Formulars Form1 stehen innerhalb
der öffentlich zugänglichen Klasse Form1, daher public class
Form1. Ein Teil der Elemente steht in dieser Datei, ein anderer
Teil, der ebenfalls automatisch 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 bestimmen.
Der Zusatz private bedeutet, dass die Ereignismethode
cmdHalloClick() nur in dieser Klasse bekannt ist. Mit void wird
gekennzeichnet, dass diese Methode lediglich etwas ausführt,
aber kein Ergebnis zurückliefert.
Auf weitere Einzelheiten dieser automatisch erzeugten
Bestandteile wird zu einem späteren Zeitpunkt eingegangen, da
es hier noch nicht notwendig ist und eher verwirren würde.
Der anfänglich ausgeführte Doppelklick führt immer zu dem Ereignis,
das am häufigsten mit dem betreffenden Steuerelement verbunden
wird.
Das ist beim Button natürlich das Ereignis Click. Zu einem
Steuerelement gibt es aber auch noch andere mögliche Ereignisse.
Bei den nachfolgenden Programmen werden nicht mehr alle Teile des
Programmcodes im Buch abgebildet, sondern nur noch

die Teile, die vom Entwickler per Codeeingabe erzeugt werden,


und die Teile des automatisch erzeugten Codes, die wichtig für
das allgemeine Verständnis sind.

Den vollständigen Programmcode können Sie aber jederzeit


betrachten, wenn Sie die Beispielprojekte laden bzw. ausprobieren.

1.4.6 Schreiben von Programmcode

In der Methode cmdHallo_Click() soll eine Befehlszeile eingefügt


werden, sodass sie anschließend wie folgt aussieht:

private void cmdHallo_Click(object sender, EventArgs e)

lblAnzeige.Text = “Hallo”;

Listing 1.2 Projekt »MeinErstes«, Button »Hallo«, mit Code


Der Text muss in Anführungszeichen gesetzt werden, da C# sonst
annimmt, dass es sich um eine Variable mit dem Namen Hallo
handelt.
Der Inhalt einer Methode setzt sich aus einzelnen Anweisungen
zusammen, die nacheinander ausgeführt werden. Die vorliegende
Methode enthält nur eine Anweisung; in ihr wird mithilfe des
Gleichheitszeichens eine Zuweisung durchgeführt.
Bei einer Zuweisung wird der Ausdruck rechts vom Gleichheitszeichen
ausgewertet und der Variablen, der Objekteigenschaft oder der
Steuerelementeigenschaft links vom Gleichheitszeichen zugewiesen.
Die Zeichenkette Hallo wird der Eigenschaft Text des Steuerelements
lblAnzeige mittels folgender Schreibweise
Steuerelement.Eigenschaft = Wert zugewiesen. Das führt dann zur
Anzeige des Werts.
Nach dem Wechsel auf die Formularansicht können Sie das nächste
Steuerelement auswählen, für das eine Ereignismethode geschrieben
werden soll.
Innerhalb des Codefensters kann Text mit den gängigen Methoden
der Textverarbeitung editiert, kopiert, verschoben und gelöscht
werden.
In der Ereignismethode cmdEnde_Click() soll der folgende Code
stehen:

private void cmdEnde_Click(object sender, EventArgs e)

Close();

Listing 1.3 Projekt »MeinErstes«, Button »Ende«


Die Methode Close() dient dem Schließen 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 Änderung der Eigenschaften eines
Steuerelements zur Laufzeit des Programms durch Programmcode.
Sie erinnern sich: Zu Beginn hatten wir bereits die Starteigenschaften
der Steuerelemente im Eigenschaften-Fenster eingestellt.

1.4.7 Kommentare

Bei längeren Programmen mit vielen Anweisungen gehört es zum


guten Programmierstil, Kommentarzeilen zu schreiben. In diesen
Zeilen werden einzelne Anweisungen oder auch längere Blöcke von
Anweisungen erläutert, damit Sie selbst oder auch ein anderer
Programmierer sie später leichter nachvollziehen können. Alle Zeichen
innerhalb eines Kommentars werden nicht übersetzt oder ausgeführt.
Ein Kommentar beginnt mit der Zeichenkombination /*, endet mit der
Zeichenkombination */ und kann sich über mehrere Zeilen erstrecken.
Eine andere Möglichkeit ergibt sich durch die Zeichenkombination //.
Ein solcher Kommentar erstreckt sich nur bis zum Ende der Zeile.
Der folgende Programmcode wurde beispielsweise um einen
Kommentar ergänzt:

private void cmdEnde_Click(object sender, EventArgs e)

/* Diese Anweisung beendet

das Programm */

Close();

Listing 1.4 Projekt »MeinErstes«, Button »Ende«, mit Kommentar


Hier noch ein kleiner Trick: Sollen bestimmte Programmzeilen für
einen Test des Programms kurzfristig nicht ausgeführt werden,
können Sie sie auskommentieren, indem Sie die Zeichenkombination
// vor die betreffenden Zeilen setzen. Das geht sehr schnell, indem
Sie die betreffende(n) Zeile(n) markieren und anschließend das
entsprechende Symbol im linken Bereich der Symbolleiste anklicken,
siehe Abbildung 1.12. Rechts daneben befindet sich das Symbol,
welches die Auskommentierung nach dem Test wieder rückgängig
macht.

Abbildung 1.12 Kommentar ein/aus


1.4.8 Starten, Ausführen und Beenden des Programms

Nach dem Einfügen der Steuerelemente und dem Erstellen der


Ereignismethoden ist das Programm fertig und kann gestartet werden.
Dazu betätigen Sie den Start-Button in der Symbolleiste (dreieckiger
grüner Pfeil nach rechts). Alternativ starten Sie das Programm über
die Funktionstaste (F5) oder den Menüpunkt Debuggen • Debugging
Starten. Das Formular erscheint, und das Betätigen der Buttons führt
zum programmierten Ergebnis.
Zur regulären Beendigung eines Programms ist der Button mit der
Aufschrift Ende vorgesehen. Möchten Sie ein Programm während des
Verlaufs vorzeitig abbrechen, können Sie auch den Ende-Button in der
Symbolleiste (rotes Quadrat) betätigen.
Tritt während der Ausführung eines Programms ein Fehler auf,
werden Sie hierauf hingewiesen, und das Codefenster zeigt die
entsprechende Ereignismethode sowie die fehlerhafte Zeile an. In
diesem Fall beenden Sie das Programm, korrigieren den Code und
starten das Programm wieder.
Es ist empfehlenswert, das Programm bereits während der
Entwicklung mehrmals durch einen Aufruf zu testen und nicht erst,
wenn das Programm vollständig erstellt worden ist. Ein geeigneter
Zeitpunkt dazu ergibt sich zum Beispiel

nach dem Einfügen der Steuerelemente und dem Zuweisen der


Eigenschaften, die Sie zu Programmbeginn benötigen, oder
nach dem Erstellen jeder Ereignismethode.

1.4.9 Ausführbares Programm

Nach erfolgreichem Test des Programms können Sie die ausführbare


Datei (.exe-Datei) auch außerhalb der Entwicklungsumgebung
aufrufen. Haben Sie an den Grundeinstellungen nichts verändert und
die vorgeschlagenen Namen verwendet, findet sich die zugehörige
.exe-Datei des aktuellen Projekts im Verzeichnis Dokumente\Visual
Studio 2015\Projects\MeinErstes\MeinErstes\bin\Debug. Das
Programm kann also ganz normal im Windows-Explorer direkt über
Doppelklick gestartet werden.
Die Weitergabe eines eigenen Windows-Programms auf einen
anderen PC ist etwas aufwendiger. Dieser Vorgang wird in
Abschnitt A.4 beschrieben.

1.4.10 Schließen und Öffnen eines Projekts

Um ein Projekt zu schließen, wählen Sie den Menüpunkt Datei •


Projektmappe schliessen. Falls Sie Veränderungen vorgenommen
haben, werden Sie vorher gefragt, ob Sie diese Änderungen speichern
möchten.
Wollen Sie die Projektdaten sicherheitshalber zwischendurch
speichern, ist das über den Menüpunkt Datei • Alles speichern
möglich. Das ist bei längeren Entwicklungsphasen sehr zu empfehlen.
Zum Öffnen eines vorhandenen Projekts wählen Sie den Menüpunkt
Datei • Projekt öffnen. Im darauffolgenden Dialogfeld Projekt öffnen
wählen Sie zunächst das gewünschte Projektverzeichnis aus und
anschließend die gleichnamige Datei mit der Endung .sln.
Alle Beispielprojekte finden Sie auf www.rheinwerk-verlag.de/3814
unter »Materialien zum Buch« zum Download. Sollte eines der
Projekte einmal nicht gestartet werden können, sollten Sie es über den
Menüpunkt Erstellen • Projektmappe neu erstellen neu erstellen.

1.4.11 Übung

Erzeugen Sie ein Windows-Programm mit einem Formular, das zwei


Buttons und ein Label beinhaltet (siehe Abbildung 1.13). Bei
Betätigung des ersten Buttons erscheint im Label Ihr Name. Bei
Betätigung des zweiten Buttons wird das Programm beendet.
Namensvorschläge: Projektname ÜName, Buttons cmdMyName und
cmdEnde, Label lblMyName.
Abbildung 1.13 Übung ÜName

1.4.12 Empfehlungen für Zeilenumbrüche

Zeilenumbrüche erhöhen die Lesbarkeit des Programmcodes. Sie


können jedoch nicht an jeder Stelle innerhalb einer Anweisung
durchgeführt werden. Nachfolgend werden einige Stellen empfohlen:

nach einer öffnenden Klammer, wie bereits gezeigt


vor einer schließenden Klammer
nach einem Komma
nach den meisten Operatoren, also auch nach dem
Zuweisungsoperator (=) hinter lblAnzeige.Text, siehe
Abschnitt 2.2
nach einem Punkt hinter einem Objektnamen, also auch nach
dem Punkt hinter dem Objektnamen lblAnzeige

Auf keinen Fall dürfen Sie einen Zeilenumbruch innerhalb einer


Zeichenkette durchführen.
1.5 Arbeiten mit Steuerelementen

1.5.1 Steuerelemente formatieren

Zur besseren Anordnung der Steuerelemente auf dem Formular


können Sie sie mithilfe der Maus nach Augenmaß verschieben. Dabei
erscheinen automatisch Hilfslinien, falls das aktuelle Element
horizontal oder vertikal parallel zu einem anderen Element steht.
Weitere Möglichkeiten bieten die Menüpunkte im Menü Format. In
vielen Fällen müssen vorher mehrere Steuerelemente auf einmal
markiert werden (siehe Abbildung 1.14).

Abbildung 1.14 Mehrere markierte Elemente


Das geschieht entweder

durch Umrahmung der Elemente mit einem Rechteck, nachdem


Sie zuvor das Steuerelement Zeiger ausgewählt haben, oder
durch Mehrfachauswahl, indem Sie ab dem zweiten
auszuwählenden Steuerelement die (ª)-Taste (wie für
Großbuchstaben) oder die (Strg)-Taste gedrückt halten.
Über das Menü Format haben Sie anschließend folgende
Möglichkeiten zur Anpassung der Steuerelemente:
Die ausgewählten Steuerelemente können horizontal oder
vertikal zueinander ausgerichtet werden (Menü Format •
Ausrichten).
Auch die horizontalen und/oder vertikalen Dimensionen der
ausgewählten Steuerelemente können angeglichen werden
(Menü Format • Grösse angleichen).
Zudem können die horizontalen und vertikalen Abstände
zwischen den ausgewählten Steuerelementen angeglichen,
vergrößert, verkleinert oder entfernt werden (Menü Format •
Horizontaler Abstand/Vertikaler Abstand).
Die Steuerelemente können außerdem horizontal oder vertikal
innerhalb des Formulars zentriert werden (Menü Format • auf
Formular zentrieren).
Sollten sich die Steuerelemente teilweise überlappen, können
Sie einzelne Steuerelemente in den Vorder- bzw. Hintergrund
schieben (Menü Format • Reihenfolge).
Sie können alle Steuerelemente gleichzeitig gegen
versehentliches Verschieben absichern (Menü Format •
Steuerelemente Sperren). Diese Sperrung gilt nur während der
Entwicklung des Programms.

Abbildung 1.15 zeigt ein Formular mit drei Buttons, die alle linksbündig
ausgerichtet sind und den gleichen vertikalen Abstand voneinander
haben.

Übung

Laden Sie das Projekt MeinErstes aus Abschnitt 1.3, markieren Sie
darin mehrere Steuerelemente, und testen Sie anschließend die
einzelnen Möglichkeiten des Format-Menüs aus.
Abbildung 1.15 Nach der Formatierung

1.5.2 Steuerelemente kopieren

Zur schnelleren Erzeugung eines Projekts können vorhandene


Steuerelemente einschließlich aller ihrer Eigenschaften kopiert
werden. Markieren Sie hierzu die gewünschten Steuerelemente, und
kopieren Sie sie entweder

über das Menü Bearbeiten • Kopieren und das Menü


Bearbeiten • Einfügen oder
mit den Tastenkombinationen (Strg) + (C) und (Strg) + (V).

Anschließend sollten Sie die neu erzeugten Steuerelemente direkt


umbenennen und an den gewünschten Positionen anordnen.

Übung

Laden Sie das Projekt MeinErstes aus Abschnitt 1.3 und kopieren Sie
einzelne Steuerelemente. Kontrollieren Sie anschließend die Liste der
vorhandenen Steuerelemente im Eigenschaften-Fenster auf eine
einheitliche Namensgebung.

1.5.3 Eigenschaften zur Laufzeit ändern

Steuerelemente haben die Eigenschaften Size (mit den Komponenten


Another random document with
no related content on Scribd:
chóntssur (H.) Ficus capensis Thbg.
chordal (M.) Brassica campestris L.
chórrede (M.) Boerhavia plumbaginea Cav.
chórege (U.) Canna indica L.
chórge (H.) Achyranthes aspera L.
chórnub (H.) Ceratonia Siliqua L.
chosám (H.) Cleome brachycarpa V.
chōsam (M.) Pyrethrum Parthenium Sm.
choschūsch (H.) Bridelia tomentosa Bl.

⎰ Senecio subscandens H.
chosla (H.)
⎱ Senecio hadiensis Forsk.

chúmel (U.) Cissus rotundifolia V.


chúmel (M.) Cissus digitata Lam.

d
‫د‬

dabbe-dubbe (B. S.) Lagenaria vulgaris Ser.


dabba-el-hind (W.) Carica Papaya L.
dáber (T.) Dobera glabra Juss.
da'da' (H.) Hibiscus vitifolius Cav.
dáhhi (W.) ⎱ Acacia glaucophylla St.
dáhhie (M.) ⎰
dān (H.) Plectranthus quadridentatus Schwf.
deféss (H.) Periploca ephedriformis (Defl.) Schf.
deferān (H. W. U.) ⎱
Acalypha fruticosa Forsk.
defrān ⎰

dénaq, déneq (H.) Sansevieria guineensis W.


dérfess (H.) Portulaca oleracea L.
dima' (Schugra, Jatropha villosa (F.) Müll.Arg.
Südküste)

dh
‫ذ‬

dhāhhnab (M.) ⎱
Dombeya Schimperiana R.
dhāhhnass (M.) ⎰

dharaf (H.) Ficus salicifolia V.


dhárahh (H.) Adina microcephala Hiern.
dhéneb-el-fárass (Hodj.) Portulaca oleracea L.
dhsam (S.) Andropogon Sorghum Brot.
dhúrm, dhúrum (U.) Teclea nobilis R.
dhúruf, dháraf (U.) Ficus ingens Miq.
d
‫د‬

digré (T.) Vigna sinensis Endl.


dima' (Schugra, Jatropha spinosa (F.) V.
Südküste) (A.)
dobbiāna (A.) Adenium arabicum Balf. f.
dōsch (W. H.) Ocimum sanctum L.
drā'et-el-kelāb, drā'et-el- Huernia Penzigii Bak.
kelbe (H.)
drā'et-el-kelbe (W.) Caralluma cicatricosa Defl. (=
Boucerosia)
dóber (U.) Clutia Richardiana Müll.Arg.
dsubb (T. H. W.) Acacia mellifera Bth.
dubbe-el-hind W. Carica Papaya L.
duchn, dochn (T. S.) Pennisetum spicatum Kcke.
dūm (S.) Hyphaene thebaica Del.

e'
‫ا‬

'elan (S.) Ziziphus spina-Christi L.


'elb (U.) Vincetoxicum sarcostemmoides
Schwf. (= Cynoctonum)
'élef (T.) Sporobolus spicatus Kth. (= Vilfa)
'embe-ssuāq (H.) Mangifera indica L.
énneme (U.) Cleome Schweinfurthii Gilg.
enneme (M. U.) Solanum grossedentatum R.
'erg, 'errēg (W.) Ziziphus mucronata W.
'érue (W.) Aerva tomentosa Forsk.
'éschereq (T.) ⎱
Cassia obovata Coll.
'éschreq (Chal. T.) ⎰

esfīh (U.) Dichrostachys nutans Bth.


'esme (H.) Combretum trichanthum Fres.

f
‫ف‬

fassele (W.) Pavetta villosa Vahl.


fedehhedān (Hodeida. Salsola foetida Del.
T.)
ferguss (U.) Adenia venenata Forsk.
férssik, ⎱
Amygdalus Persica L.
fírssik (H. W. S.) ⎰

fessīss (H.) Vernonia abyssinica Sz.B.


fettách (H.) Psiadia punctulata Vtke.
figl (S.) Raphanus sativus L.
fileq-el-bárram (H.) Maerua triphylla R.
fillä' (H.) Ecbolium Linneanum Krz.
fischūghe (H.) Cassytha filiformis L.
fissfesse (H.) Vernonia hypoleuca Vtke.
fre'ūge (M.) Nepeta Deflersiana Schwf.
fuē' (W.) Pentas lanceolata W.
full-korēschi (H.) Jasminum Sambac L.

g
‫ج‬

gādab (U.) Conyza Hochstetteri Sz.B.


ga'der-taēl (M.) Coccinia Moghadd (F.) Asch.
gáhdab (U.) Pelargonium multibracteatum H.
gáhhta (M.) Nigella sativa L.
gára' (U.) Pavonia arabica H.
gasar (S.) Daucus Carota L.
gaschíb (H.) Crepis Rueppellii Sz.B.
gehēd (T.) Citrullus Colocynthis Schr.
gehhēfe, ge'ēfe (M.) Kedrostis foetidissima Cogn.
géissam (U.) Justicia flava (Nees) Schwf. (=
Adhatoda)
gelēf, gelīf (H.) Commelina Forsskalii V.
gendab-ahhmar (M.) Andropogon Sorghum Br. var. usorum
Nees.
gensīr (H.) Acacia Lahai H. St.
gensīr (H.) Dichrostachys nutans Bth.
gerōm (H.) Barleria trispinosa V.
gerōm (H.) Gymnosporia serrata Loes. (=
Celastrus)
geschb (Hodj. U.) Aloe sabaea Schwf.

gh
‫غ‬

ghálath, ghálaf (U.) ⎱


Echidnopsis penicillata (Defl.) Schwf.
ghaleth (W.) ⎰

ghāf (Bolhaf, Südküste) Prosopis spicigera L.


ghassl-er-rass (M.) Ionidium suffruticosum D.C.
ghobēra (H.) Lepidagathis aristata Nees.
gholáthi (H.) Echidnopsis penicillata Schf.
ghoris.si (H.) Pennisetum Ruppellii Steud.
ghuba'da (H.) Tephrosia senticosa Pers.
g
‫ج‬

gille (M.) Vicia Faba L.


gissér (H.) Batatas edulis Ch.
glīt (U.) Barleria argentea Balf. f. (= B.
yemensis (Schwf.) Lind.)
glīt (U.) Breweria oxycarpa H.
glīt (U.) Evolvulus alsinoides L.
golleï̄m (M.) Achillea sp. culta
gorhho'd (H.) Melhania velutina Forsk.
gōs (S.) Juglans regia L.
go'scheb (H.) Urospermum picroides Df.
gúbusse (U.) Conyza pyrrhopappa Sz.B.
gúfade (M.) Scutellaria peregrina L.
gulbān (S.) Lathyrus sativus L.
gulgul, qulqul (W.) Crotalaria retusa L.
gulgulān (S.) Sesamum indicum L.
güll-ahhmar (H.) ⎱ Celosia cristata L. var. castrensis
güll-en-nār (T.) ⎰ Mq.T.

gumä' (W.) Rhus glaucescens R.


gurr (U.) Kanahia Forsskalii Dcne.
gúrrere (U.) Senecio Schimperi Sz.B.
gusāme (S.) Lavandula spica Cav.

h
‫ه‬

harm (T.) Salsola Forsskalii Schwf.


haue'ré (H.) Tephrosia senticosa Pers.
héleg (T.) Balanites aegyptiaca Del.
helégleg (U.) Talinum portulacifolium (F.) Asch.
hérrige (W.) Clitoria ternatea L.
hesimbil (H.) Ochna inermis Forsk.
híndija (A.) Cyamopsis psoralioides Del.
hogēla (H.) Albersia caudata Boiss.

hh
‫ح‬

hhábbaqa (U.) Ocimum cylindrostachys Schwf.


hhabóqboq (H. T.) Ocimum menthifolium H.
hádal (U.) Cocculus villosus D.C.
hhádaq (W.) Cucumis ficifolius R. var.
echinophorus Naud.
hhádaq (U.) Solanum sepicula Dun.

⎰ Loranthus globiferus R.
hhaddāl (M.)
⎱ Loranthus regularis St.

hhadeg-mōdeg (teste Cassytha filiformis L.


Ehrbg.)
hhafá', ⎱
Typha angustifolia L.
hhāfe (T.) ⎰

hhahhna (H.) Verbenac. sp. arom.


hhalāl (U. M.) Arundo Donax L.
hhälál (H.) Clematis orientalis L.
hhálatss (T.) Cissus rotundifolia V.
hháluaq (U.) Cissus digitata Lam.
hámak-el-hhomr (U.) Cucumis pustulatus Hk.f.
hámaq-er-robách (H.) Coccinia Moghadd (F.) Aschers.
hhámatss (U. M.) ⎱
Rubus arabicus (Defl.) Schwf.
hhámmetss (Hodj.) ⎰

hämmere (H.) Tricholaena grandiflora H. (=


Panicum)
hhámsched (H.) Pupalia lappacea Mq.T.
hhándal (B.) Citrullus Colocynthis Schr.
hhaneschāt (H.) Albuca abyssinica Dryand.
hhaqquá (U.) Selaginella yemensis Spring.
hharām-edh-dhíbbel (U.) Acalypha indica L.
hharaq (W.) Sansevieria guineensis W.
hharmal (W.) Pavetta villosa Vahl.
hharschūf (S.) Cynara Scolymus L.
hhaschaf (H.) Lantana salviiifolia Jaq.
hháschraf (H.) Ficus serrata Forsk.
hassaq (M.) Cynoglossum lanceolatum Forsk.
hhássaq (U.) Pupalia lappacea Mq.T.
hhassáq (H.) Priva dentata Juss.
hhass.ss (S.) Lactuca sativa L.
hhátaf (W.) Boerhavia plumbaginea Cav.
hhatssā-lubān (S.) Rosmarinus officinalis L.
hhatssár (H. W. T.) Indigofera oblongifolia Forsk. (= I.
paucifolia Del.)
hháuer (W.) Indigofera argentea L.
hhauēre (H.) Tephrosia senticosa Pers.
hhaúgam (U.) Oncoba spinosa Forsk.
haússefe (W.) Pennisetum Ruppellii Steud.
'hhauuéss (M.) Lavandula pubescens Dcne.
hhēge, hhāga (W. H.) Rosa abyssinica R.Br.
hhegēne (T.) Andropogon Sorghum Brot. var. pann.
compacta
hheinān (M.) Primula verticillata Forsk.
hhelbe (M.) Trigonella foenum-graecum L.
hhell (B. H. T.) Indigofera spinosa L.
hhémele (H.) Flueggea obovata Wall.
hhemrūr (U.) Cadia varia l'Her.
hhemrūr, hhomrūr (H. Ormocarpum bibracteatum Bak.
Hodj.)
hhenet-el-baqar (M.) Erythrococca abyssinica Pax.
hhennet-el-baqar (U.) Flueggea obovata Wall.
hherg (U. W.) Kalanchoe lanceolata Pers.
hheridhe (H.) Hypodematium crenatum (F.) Kze.
hherregá (H.) Sida urens L.
hérrige, hérije (H. W.) Cocculus villosus D.C.
hhéssike (H.) Bidens pilosa L.
hhibāg (Hadhram) Ocimum basilicum L.
hhinne (W.) Lawsonia inermis Lam.
hhóbbe (M.) Pittosporum abyssinicum Del.
hhoddä'-fil-umm (H.) Helichrysum foetidum Cass.
hhodeda' (H.) Hibiscus vitifolius Cav.
hhodhūb (M.) Berberis aristata D.C.
hhogema, hhogena (T.) Andropogon Sorghum Br. var. pannic.
compacta
hhommǟ'd (H.) Grewia bicolor Juss.
hhómoda (M.) ⎱
Oxalis corniculata L.
hhomēd (W. H.) ⎰

hhómmadda (M.) Geranium simense H. (= G. arabicum


F.)
hhómmess (U.) Rosa abyssinica R.Br.
hhómar (S.) ⎱ Tamarindus indica L.

hhomr (H.)
hhómar (T.) Sesbania leptocarpa D.C.
hhomrūr (M.) Cadia varia l'Her.
hhómuda (U.) Oxygonum sinuatum Bth. Hk.
hhōqam (Hodj.) Pisonia aculeata L.
hhubbä' (H.) Bersama abyssinica Fres.
hhubūn-el-malūk (S.) Morus nigra L.
hhúer, hhōuer (U.) Indigofera argentea L.
hhuēre (H.) Tephrosia senticosa Pers.

i. j
‫ي‬

jahhdāb (M.) Tripteris Vaillantii L.


jaqttīn (S.) Cucumis melo L. var. chate Forsk.
'ihhbet (H.) Pennisetum ciliare Link.
ingāss (S.) Pyrus communis L.
issbānach (S.) Spinacia oleracea L.
júbusse (U.) Micromeria biflora Bth.
jussr (H.) Canna indica L.
k
‫ك‬

⎰ Commiphora kataf (F.) Engl.


káttaf (U. W.)
⎱ Commiphora Schimperi Engl.

kélab (U.) Pterolobium abyssinicum R.


kélach (H.) Euphorbia Cactus Ehrbg.
kemb (H.) Portulaca quadrifida L.
kemb (W.) ⎱
Barbeya oleoides Schwf.
kimb (U.) ⎰

kéneb (Schugra, Eleusine coracana Gaert.


Südküste)
kerrsi (H.) Dactyloctenium aegyptiacum W.
kérssab (U.) Senecio odorus (F.) Defl.
kilbān (W.) Pterolobium abyssinicum R.
kimb (U.) Tarchonanthus camphoratus L.
kischt (W.) Dolichos Lablab L.
kufa'ān (H.) Filices sp. omnes
kufa'ān (H.) Selaginella imbricata Spring.
kuf-el-mä' (H.) Cyperus flabelliformis Rottb.
kurad (W.) Gomphocarpus fruticosus R.Br.
kúrkum (H. W.) Colocasia antiquorum Schott.
kurscho (W.) Bridelia tomentosa Bl.
kūsch (W.) Conyza Dioscoridis Df.
kusché (W.) Gomphocarpus fruticosus R.Br.
kúschkusch (W.) Dichrostachys nutans Bth.

l
‫ل‬

la' (W.) ⎫
la'dh (H.) ⎪
⎬ Carissa edulis V.
la'ja (W.) ⎪
lāss (W.) ⎭

lä' (W.) ⎱
Aristolochia bracteata Retz.
la'ja (W.) ⎰

lāch, lachāch (H.) Clutia Richardiana Müll.Arg.


lā'fā' (W.) Cadia varia l'Her.
látssaf (A. M. W. H.) Capparis galeata Fres.
lebach (H.) Mimusops Schimperi H.
lebbēna (B.) Euphorbia granulata Fk.
lehāne (S.) Brassica oleracea L.
lesāb (M.) Ocimum basilicum L.
lesāb (M.) Origanum Majorana L.
letssāq, létssiqe (U.) Forsskaolea tenacissima L.
létssige, létssiqe (M.) Echium Rauwolfii Del.
libān (W.) Tarchonanthus camphoratus L.
līm (M. W.) Citrus Limonum Risso. var. pusilla
Risso.
límmām (H.) Berchemia yemensis Defl.
limūn (S.) Citrus Limonum Risso.
līm-hhālib (W.) Citrus Limonum Risso. var. dulcis
Moris.
lissān-tōr (M.) ⎱
Rumex Steudelii H.
lissān-el-baqer (M.) ⎰

lōs (S.) Amygdalus communis L.


lotā (W.) Cadia varia l'Her.
lū' (U.) Carissa edulis V.
lú' (U.) Convolvulus glomeratus Choisy.
lúa (Hodj.) Cocculus villosus D.C.
lubia-hindi (B.) Canavalia gladiata D.C.
lúbija (S.) Vigna sinensis Endl.
lussēq (W.) Plumbago zeylanica L.

m
‫م‬

madd (T.) Anisotes trisulcus Nees.


march (U.) Periploca ephedriformis (Defl.) Schwf.
marrār (M.) Tripteris Vaillantii L.
máti (W.) Desmodium gangeticum D.C.
mā'tss (M.) Maesa lanceolata Forsk.
mdä'da (H.) Ecbolium Linneanum Krz. (= Justicia)
médahh, muddáhh (H.) Ficus glumosa Del.
medān (U.) Coleus Zatarhendi Bth.
melīsse (H. W.) Scrophularia arguta Sol.
mēlssá' (H.) Scrophularia arguta Sol.
merēr (U.) Reichardia tingitana Rth. (= Picridium)
mēru (H.) Rhoicissus jemensis Schwf.
mesk, missūk (H.) Ehretia obtusifolia H.
meslāt-nimr (H.) Periploca ephedriformis Schwf.
metēn (H.) Desmodium gangeticum D.C.
mgēïf (Hodj.) Ehretia abyssinica R.Br.
míbisse (W.) Plectranthus quadridentatus Schwf.
mischmisch (S.) Prunus Armeniaca L.
misk (H.) Hibiscus Abelmoschus L.
missk-er-rūmi (S.) Polianthes tuberosa L.
moghēbre (H.) ?Verbenac. sp. arom.
moglagidí (H.) Clitoria ternatea L.
moglagidí, moghlogidi Jasminum Sambac L.
(H.)
mōnass (H.) Pulicaria orientalis J. Sp.
mōss (S.) Musa paradisiaca L.
mschāt-el-choddä' (H.) Asplenium praemorsum Sw.
mschéttera (W.) Cocculus villosus D.C.
mschorq-'ana (W.) Tragia pungens (F.) Müll.Arg.
mserrä' (W.) Coccinia Moghadd (F.) Aschers.
mudhēda (H.) Hypoestes paniculata Schwf.
múkahh (T.) Momordica balsamina L.
muluhhīje (S.) Corchorus olitorius L.
murrä́ ' (W.) Reichardia tingitana Rth.
murrēr (W.) Sonchus oleraceus L.

n
‫ن‬

nachl (S.) Phoenix dactylifera L.


na'nā' (U.) ⎱
Mentha piperita L.
na'nā'-filfil (S.) ⎰

na'ōdh (M.) Mentha sylvestris L.


nargīl (S.) Cocos nucifera L.
naufe (U.) Portulaca quadrifida L.
negerān (U.) Gymnosporia serrata Loes.
némmam (H.) Berchemia yemensis Defl.
ngātss (M.) (agātss) Prunus domestica L.
nīle (H.) Asplenium praemorsum Sw.
nimr (W.) Pedicellaria pentaphylla Schr.
nischām (Hodj.) Grewia mollis Juss.
nischām, nuschám (H.) Grewia bicolor Juss.
nischēm (W.) Allophylus rubifolius (H.) Engl.
no'ōdh (U. H.) Mentha sylvestris L.
nugám (U.) ⎱
Solanum coagulans Forsk.
nugúm (M.) ⎰

nutssáf (Hodj.) Capparis galeata Fres.

o'
‫ا‬

'obāb (T.) Jatropha villosa Müll.Arg.


'obab, 'obö́ b (H.) Withania somnifera Dun.
'ōbel (H.) Cynodon Dactylon Pers.
'odār (H.) Polanisia viscosa D.C.
'odār (U.) Striga hermonthica Bth.
'oddār (H.) Loranthus Schimperi H.
'oddār (U.) Orobanche cernua Löffl.
'ofrūss (W. H.) Abrus precatorius L.
'onssīf (M.) Astragalus abyssinicus St.
'onssif (U.) Lavandula pubescens Dcne.
'oqāb (T.) Ustilago Tulasnei Kühn.
'orfott (B. H. T.) Acacia oerfota (F.) Schwf. (= A. nubica
Bth.)
'orqäss (B.) Pentatropis spiralis Dcne.
orqäss (B.) Desmodium gangeticum D.C.
'orrēg Ziziphus mucronata W.
osáru (T.) Hibiscus micranthus L.f.
'óthrob (H.) ⎱
Rumex nervosus V.
'óthrub (U.) ⎰

'ottb (H. W.) Gossypium vitifolium Cav.


'ottúm (H.) Olea chrysophylla Lam.

q
‫ق‬

qa' (H. W.) Terminalia Brownii Fres.


qaddī (H.) Cadia varia l'Her.
qadhb, qaddb (M.)

qádhub (el-Hami, Medicago sativa L.

Südküste)
qáfal (B. U.) ⎰ Commiphora abyssinica Engl.
⎱ Commiphora kataf Engl.
qajān (H.) Jasminum gratissimum Defl.
qā'ra (U.) Malva parviflora L.
qara' (S.) ⎱
Cucurbita Pepo L.
qara'-rūm (Hodj.) ⎰

⎰ Acacia Edgeworthii F. And.


qáratt (A. M.)
⎱ Acacia Lahai St.

qarauan (M.) Rosa abyssinica R.Br.


qarénna (B.) ⎱ Leptadenia arborea (F.) Schwf. (= L.
qarínne (H.) ⎰ abyssinica Dcne.)

qatám (H. M.) Myrsine africana L.


qāth (M. W. S.) Catha edulis Forsk.
qatssur (M.) Euphorbia fruticosa F.
qattn, qottn (T.) Phaseolus aconitifolius Jacq.
qa'uqa' (H.) Caucanthus edulis Forsk.
qēn (H.), qīn (S.) Jasminum officinale L.
qéruan (U.) Jasminum officinale L.
qétba (T.) Tribulus bimucronatus Viv.
qilloé' (U.) ⎱
Hibiscus Deflersii Schwf.
qilnet-er-rāi' (U.) ⎰

qischta (H.) Cajanus flavus D.C.


qobūr (W.) Antirrhinum Orontium L.
qólqol (H.) Abrus precatorius L.

Das könnte Ihnen auch gefallen