Mehr Fragen bantwortet
This commit is contained in:
parent
03f99a4f6f
commit
0e57874a2c
283
readme.md
283
readme.md
|
@ -446,17 +446,287 @@ Theorie:
|
|||
|
||||
51. Events eines Windows Forms:
|
||||
|
||||
- Click
|
||||
- FormClosing
|
||||
- Touch
|
||||
|
||||
52. Parameter der Show Methode von MessageBox
|
||||
|
||||
- owner | Implementierung von IWin32Window, wird Besitzer des Dialogfeldes
|
||||
- text | Text im Fenster
|
||||
- caption | Titel in der Fensterleiste
|
||||
- buttons | Ja/Nein/Abbrechen etc. buttons
|
||||
- icon | Symbol im Meldungsfenster
|
||||
- defaultButton | Standardbutton von buttons
|
||||
- options | Anzeige- und Zuordnungsoptionen
|
||||
- helpFilePath | Pfad für die Hilfedatei, wenn auf "Hilfe" geklickt wird
|
||||
- keyword | Hilfestichwort
|
||||
|
||||
53. Einsatz der FileSystemWatcher Komponente
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
- Überwachung von Dateien bzw. Ordnerstrukturen
|
||||
- Löst ein Ereignis aus bei Änderungen
|
||||
|
||||
-> Übergabe von verschiedenen Eventhandlern an den FileSystemWatcher
|
||||
Beispielsweise Changed, Created, Deleted, Renamed
|
||||
|
||||
54. Eigenschaften und Methoden eines Exception Objekt
|
||||
|
||||
- Das Exception Objekt wird in try - catch Blöcken verwendet und wird zum bheandeln von Ausnahmen in der Programmlogik verwendet
|
||||
|
||||
Eigenschaften:
|
||||
- Stacktrace
|
||||
- Message
|
||||
|
||||
Methoden:
|
||||
- GetBaseException | Gibt Exception zurück bei einem von Exception abgeleitetem Objekt wie z.B. IOException
|
||||
- GetObjectData | Setzt die SerializationInfo
|
||||
- GetType | Gibt den Typ der Exception zurück wie z.B. IOException
|
||||
- ToString | Gibt die Exception Message als String zurück
|
||||
|
||||
55. Exception Handling Erklärung
|
||||
|
||||
- Mit try - catch kann man eine Exception abfangen
|
||||
- Im try Block ist der Code, der möglicherweise eine Ausnahme auslöst und wird in catch abgefangen
|
||||
- Der catch Block wird üblicherweise zum Logging der Exception verwendet, oder die Exception wird weiterverarbeitet
|
||||
- mit *throw new Exception()* kann man absichtlich eine Exception auslösen
|
||||
|
||||
56. Eigene Exception erstellen
|
||||
|
||||
- klasse von Exception (oder abgeleiteter Exception Klasse) ableiten
|
||||
- konstruktor der Basisklasse für Fehlermeldung nutzen
|
||||
|
||||
public class myException: System.Exception
|
||||
{
|
||||
public myException():base(“Spezielle Fehlermeldung”)
|
||||
{
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
57. Vorteile des Structured Exception Handling
|
||||
|
||||
- Trennung von Programm und Fehlerlogik
|
||||
- genaue Fehlerbeschreibung inkl Zusatzinformationen
|
||||
- abfangen mehrerer Exceptions möglich
|
||||
|
||||
58. Serialisierung/Deserialisierung
|
||||
|
||||
Unter Serialisierung versteht man das Speichern eines Objektes auf einem beständigen Speichermedium und das Wiederherstellen ders Objektes anhand seiner Daten im Programm.
|
||||
(Deserialisierung)
|
||||
|
||||
59. Unterschiede zwischen Binary und XML Serialisierung
|
||||
|
||||
XML:
|
||||
- Overhead durch XML Tags
|
||||
- lesbarer Code -> flexibel
|
||||
- nur public Elemente werden serialisiert
|
||||
|
||||
Binary:
|
||||
- schnell lesbar, klare Datei
|
||||
- Binärformat ist unflexibel
|
||||
- private Elemente werden mitserialisiert
|
||||
|
||||
60. Erstellung einer serialisierten Klasse
|
||||
|
||||
[Serializable]
|
||||
public class SerializableClass {
|
||||
public int Aersche = 15;
|
||||
public int x = 0;
|
||||
public String str = null;
|
||||
}
|
||||
|
||||
61. Umsetzung der binären Serialisierung | https://www.guru99.com/c-sharp-serialization.html
|
||||
|
||||
- Serializable Klasse erstellen
|
||||
- Objekt von Serializable Klasse erstellen und den Attributen Werte zuweisen
|
||||
- BinaryFormatter erstellen
|
||||
- Beispielszenario: Stream öffnen zum Lesen der Datei die serialisiert werden soll
|
||||
- Mit BinaryFormatter.Serialize eingelesenen Stream und Serializable Objekt serialisieren
|
||||
- Stream schließen mit .Close()
|
||||
|
||||
62. Implementierung von XML Serialisierung
|
||||
```
|
||||
MyClass obj1 = new MyBeispiel( );
|
||||
XmlSerializer s = new XmlSerializer(typeof(MyBeispiel));
|
||||
FileStream fs;
|
||||
|
||||
// Serialisieren
|
||||
fs = new FileStream(@"C:\test.txt", FileMode.Create);
|
||||
s.Serialize(fs, obj1);
|
||||
fs.Close( );
|
||||
|
||||
// Deserialisierung
|
||||
fs = new FileStream(@"C:\test.txt", FileMode.Open);
|
||||
MyClass obj2 = (MyClass) s.Deserialize(fs);
|
||||
fs.Close( );
|
||||
```
|
||||
63. DataBindingSource Objekt
|
||||
|
||||
Die BindingSource Komponente dient vielen Zwecken.
|
||||
Das Binden von Steuerelementen in einem Formular an Daten wird vereinfacht,
|
||||
indem Währungsverwaltung, Änderungs Benachrichtigung und andere Dienste zwischen
|
||||
Windows Forms Steuerelementen und Datenquellen bereitgestellt werden.
|
||||
|
||||
DataSetTabelle --- DataBindingSource Objekt --- Steuerelement
|
||||
|
||||
64. Simple und Complex Binding von Steuerelementen
|
||||
|
||||
Beim simple binding bindet man nur eine Eigenschaft an einen
|
||||
Datensatz (z. B. die Text-Property eines Textfeldes an den Namen des Personenobjekts).
|
||||
Verwendet man das complex binding, so werden mehrere Datensätze an ein Steuerelement
|
||||
gebunden (z. B. alle Daten mehrerer Datensätze an ein DataGrid oder alle Namen an eine ComboBox).
|
||||
|
||||
65. BindingNavigator Objekt
|
||||
|
||||
The BindingNavigator control represents a standard way
|
||||
to navigate and manipulate data on a form. It is a special-purpose
|
||||
ToolStrip control for navigating and manipulating controls on the Windows Form.
|
||||
|
||||
In most cases, a BindingNavigator is combined with a BindingSource control to
|
||||
move through data records on a Windows Form. It is easy to modify the
|
||||
BindingNavigator component if you want to add additional or alternative
|
||||
commands for the user.
|
||||
|
||||
A BindingNavigator is:
|
||||
|
||||
- a VCR (video-cassette recorder) control which is used with BindingSource.
|
||||
- based on ToolStrip.
|
||||
- extensible and pluggable.
|
||||
|
||||
66. Zweck einer DAO Klasse
|
||||
```
|
||||
DAO - Klasse (Data Access Object):
|
||||
- Entwurfsmuster das den Zugriff auf unterschiedliche Arten von Datenquellen
|
||||
- Muster für die Gestaltung von APIs
|
||||
- Datenadapter der Applikation
|
||||
- speichert z.b. Daten in einer privaten List Collection
|
||||
- ist für die Serialisierung und Deserialisierung zuständig
|
||||
- meist werden Methoden wie SaveData() ausprogrammiert
|
||||
|
||||
-> Data Access Object Klassen kapseln die Serialisierung/ Deserialisierung von Objekten.
|
||||
Programmlogik und Datenverwaltung sind getrennt!
|
||||
```
|
||||
67. Aufgabe des Gerätekontextes beim Druck in C#
|
||||
|
||||
- Graphics Eigenschaft der Klasse PrintPageEventArgs
|
||||
- Informiert den Drucker welche Art von Grafiken gedruckt werden
|
||||
```
|
||||
private void printDocument1_PrintPage(object sender,
|
||||
System.Drawing.Printing.PrintPageEventArgs e)
|
||||
{
|
||||
e.Graphics.FillRectangle(Brushes.Blue,
|
||||
new Rectangle(100, 150, 250, 250));
|
||||
}
|
||||
```
|
||||
|
||||
Der Gerätekontext stellt eine einheitliche Schnittstelle zur Ausgabe von Daten auf Ausgabegeräte
|
||||
bereit („virtuelle Zeichenleinwand“). Somit wird eine hardwareunabhängige Ausgabelogik im
|
||||
Programm möglich.
|
||||
|
||||
68. Warum funktioniert die Druckvorschau ohne installierten Drucker nicht?
|
||||
|
||||
Weil kein Druckertreiber verfügbar ist.
|
||||
|
||||
69. Prinzipieller Druckvorgang unter C#
|
||||
|
||||
Druckvorgang:
|
||||
SIEHE "Zusammenfassung zum Adressbuch3 TA.pdf"
|
||||
|
||||
1 PrintDocument Object erzeugen
|
||||
```
|
||||
PrintPage Event -> Handler-Methode für Drucklogik
|
||||
PrintPageEventArgs:
|
||||
PageSettings Property des PrintDocuments (Seiteneinstellungen)
|
||||
Graphics Object (Device Context)
|
||||
HasMorePages Property (true setzen, wenn noch weitere Seiten gedruckt werden sollen…)```
|
||||
2 Seitenränder setzen
|
||||
-> PageSattings Objekt -> Margins… (Left, Rightt, Top, Bottom) setzen.
|
||||
3 Bedruckbaren Bereich ermitteln
|
||||
-> PrintPageEventArgs e -> MarginBounds… (Left, Rightt, Top, Bottom) nutzen.
|
||||
|
||||
4 Schriftarten erstellen
|
||||
-> Im .NET Framework nutzt man die Font Klasse zum Erstellen von Schriften:
|
||||
```
|
||||
Font headerFont = new Font ("Arial",18, FontStyle.Bold);
|
||||
```
|
||||
|
||||
5 Schriftarten messen zur Positionsberechnung
|
||||
-> Über das Graphics Objekt können Schriften gemessen werden.
|
||||
MeasureString(String text, Font font)… (Width, Height)
|
||||
|
||||
```
|
||||
float headerWidth = g.MeasureString(header, headerFont).Width;
|
||||
```
|
||||
|
||||
6 DrawString(...) des Graphics Objects
|
||||
-> Zeichnet einen String an die angegebene Position auf den Device Context.
|
||||
```
|
||||
g.DrawString(text, schrift, brush, xPosition, yPosition);
|
||||
```
|
||||
|
||||
70. Welche Elemente sind in PrintPageEventArgs
|
||||
|
||||
Eigenschaften:
|
||||
- Cancel
|
||||
- Graphics
|
||||
- HasMorePages
|
||||
- MarginBounds
|
||||
- PageBounds
|
||||
- PageSettings
|
||||
|
||||
Methoden:
|
||||
- Equals(Object)
|
||||
- GetHashCode()
|
||||
- GetType()
|
||||
- MemberwiseClone()
|
||||
- ToString()
|
||||
|
||||
71. Benutzerdialoge zur Druckunterstützung
|
||||
|
||||
- PrintDialog
|
||||
- PrintPreviewDialog
|
||||
- PageSetupDialog
|
||||
|
||||
72. Einrichten von Seitenränder
|
||||
|
||||
Seitenränder setzen
|
||||
-> PageSattings Objekt -> Margins… (Left, Rightt, Top, Bottom) setzen
|
||||
|
||||
73. Vorgehensweise zum Ermitteln des bedruckbaren Bereichs
|
||||
|
||||
Bedruckbaren Bereich ermitteln
|
||||
-> PrintPageEventArgs e -> MarginBounds… (Left, Rightt, Top, Bottom) nutzen.
|
||||
|
||||
74. Initialisierung einer Schriftart
|
||||
|
||||
Schriftarten erstellen
|
||||
-> Im .NET Framework nutzt man die Font Klasse zum Erstellen von Schriften:
|
||||
```
|
||||
Font headerFont = new Font ("Arial",18, FontStyle.Bold);
|
||||
```
|
||||
|
||||
75. Höhe und Breite eines Textes zur Textpositionierung berechnen
|
||||
|
||||
- Graphics.MeasureString() verrechnet Font mit String
|
||||
->This method returns a SizeF structure that represents
|
||||
the size, in the units specified by the PageUnit property,
|
||||
of the string specified by the text parameter as drawn
|
||||
with the font parameter.
|
||||
|
||||
76. DrawString Funktionsweise
|
||||
|
||||
Draws the specified text string at the specified location with the specified Brush and Font objects.
|
||||
|
||||
Parameter:
|
||||
String s | String der gezeichnet werden soll
|
||||
Font font | Text Format des Strings
|
||||
Brush brush | Farbe und Textur des gezeichneten Text
|
||||
Single x | x Koordinate des Text
|
||||
Single y | Y Koordinate des Text
|
||||
|
||||
|
||||
|
||||
Legende:
|
||||
|
||||
- MSIL : Microsoft Intermediate Language (auch CIL - Common Intermediate Language)
|
||||
|
@ -464,3 +734,4 @@ Legende:
|
|||
- CLS : Common Language Specification
|
||||
- JIT : Just in Time
|
||||
- COM : Component Object Model
|
||||
- DAO : Data Access Object
|
||||
|
|
Loading…
Reference in New Issue