Erste Schritte · Schritt 10 von 10

Jetzt wird es bunt: Überfällige Messmittel hervorheben

Überfällige Messmittel sollen in der Liste sofort auffallen. Dafür brauchst du ein Attribut, eine Einstellung in der Liste und ein paar Zeilen C#.

CharisVisual Studioca. 10 Min.← Übersicht

In diesem Schritt

  1. Ein berechnetes Attribut „Hintergrundfarbe“ anlegen
  2. Es der Liste als Hintergrundfarbe zuweisen
  3. Die Farbe in C# bestimmen

Ein Attribut für die Farbe

Lege an der Entität Messmittel ein weiteres Attribut an: Hintergrundfarbe, Typ string, mit run code for value. Es funktioniert wie das Attribut Nächste Kalibrierung am aus Schritt 9: Der Wert wird berechnet.

Formular des Attributs Hintergrundfarbe, Typ string, mit angehaktem run code for value.
Auch die Farbe ist ein berechnetes Attribut.

Eine eigene Spalte bekommt die Hintergrundfarbe nicht. Sie soll die Zeile einfärben, nicht als Text dastehen.

Die Liste einfärben

Öffne die table view Messmittel und wähle bei background color das Attribut Hintergrundfarbe.

table view Messmittel mit background color Hintergrundfarbe.
Die Zeilenfarbe kommt aus dem Attribut.

Mit foreground color könntest du auf dieselbe Weise die Schriftfarbe steuern.

Die Farbe in C# bestimmen

Generiere den Code und baue die Lösung in Visual Studio. Den Fehler kennst du schon: Diesmal fehlt GetHintergrundfarbe(). Mit Strg+. und Implement missing members entsteht wieder der Rahmen.

Visual Studio Quick Actions mit dem Eintrag Implement missing members für GetHintergrundfarbe.
Derselbe Handgriff wie in Schritt 9

Ausgemusterte Messmittel werden grau, überfällige zartrosa, alle anderen bleiben, wie sie sind:

using System.Drawing;

// … in der Klasse Messmittel:
public override string? GetHintergrundfarbe()
{
    if (Ausgemustert == true)
    {
        return nameof(Color.LightGray);
    }
    if (NächsteKalibrierungAm < DateTime.Today)
    {
        return nameof(Color.MistyRose);
    }
    return null;
}
Visual Studio mit der fertigen Methode GetHintergrundfarbe; neben Color.LightGray und Color.MistyRose zeigt der Editor kleine Farbfelder.
Visual Studio zeigt die Farben gleich mit an.

Die Methode liefert den Namen einer Farbe als Text. nameof(Color.MistyRose) ergibt "MistyRose", und der Compiler bewahrt dich dabei vor Tippfehlern. Weil der Vergleich mit DateTime.Today arbeitet, ist ein Messmittel, das heute fällig ist, noch nicht überfällig.

Das Ergebnis

Drücke F5 und öffne die Messmittel:

Liste Messmittel: Die Zeile Endmaßsatz 47-tlg. ist rosa hinterlegt, die Zeile Messuhr 0,01 mm grau.
Überfällig in Rosa, ausgemustert in Grau

Der Endmaßsatz ist überfällig und fällt sofort auf. Die Messuhr ist ausgemustert und tritt grau in den Hintergrund.

Geschafft!

In zehn Schritten hast du:

  • eine Lösung mit zwei Datenbanken und einer Visual-Studio-Lösung angelegt
  • eine Entität mit sieben eigenen Attributen modelliert
  • mit einem Klick Formular, Liste und Eintrag im Hauptfenster erzeugt
  • eine Windows-Forms-Anwendung mit Benutzerverwaltung, Unicode und Eindeutigkeitsprüfung bekommen
  • zwei Stücke Fachlogik in C# geschrieben, genau dort, wo der Compiler sie verlangt hat

Du hast dabei keine Tabelle angelegt, kein Formular gezeichnet und keinen Datenzugriff programmiert. Deine eigenen Zeilen Code drehen sich nur um das, was dein Fachgebiet ausmacht: wann ein Messmittel fällig ist und wie man das sieht.

Wie geht es weiter? Lege eine zweite Entität an, zum Beispiel „Kalibrierung“ mit einem Verweis auf das Messmittel. Mache Pflichtfelder zu Pflichtfeldern. Gib dem Eintrag im Hauptfenster ein eigenes Symbol. Und wenn du Daten brauchst, die zum Modell selbst gehören, hilft dir der Leitfaden Modelldaten in Charis.

Hängst du irgendwo fest?

Schreibe uns, an welchem Schritt es hakt. Wir helfen dir weiter und verbessern das Tutorial.

Frage stellen
horaios GmbH
Lindenstraße 40
89134 Blaustein
Telefon 0731 950 334-0
info@horaios.de