Freigeben über


Genauere Betrachtung: Anpassen des Benutzersteuerelements

Aktualisiert: November 2007

In dieser Lektion wird erläutert, wie Sie das Benutzersteuerelement anpassen können, um seinen Nutzen zu erweitern.

Hinzufügen von Bezeichnungen

In der letzten Lektion haben Sie das NamesControl-Benutzersteuerelement getestet und festgestellt, dass seine Funktionsweise den Erwartungen entspricht. Eventuell sind Ihnen auch einige Möglichkeiten eingefallen, wie es verbessert werden könnte. Beispielsweise ist es nicht offensichtlich, welcher Name in welchem Textfeld eingegeben werden soll, und es kann nicht sichergestellt werden, dass ein Benutzer alle drei Namen eingibt.

Um den Funktionsumfang des Benutzersteuerelements zu erweitern, können Sie Bezeichnungen hinzufügen, mit denen die einzelnen Textfelder identifiziert werden. Sie können den Text für die Bezeichnungen z. B. auf "Vorname", "Zweiter Vorname" und "Familienname" festlegen. Was geschieht jedoch, wenn Sie später feststellen, dass Sie eigentlich den "Anfangsbuchstaben des zweiten Vornamens" festlegen wollten? Es empfiehlt sich, Eigenschaften für den Bezeichnungstext zu erstellen, damit Sie den Text zur Entwurfszeit ändern und Standardwerte für die einzelnen Eigenschaften bereitstellen können.

Übung

So passen Sie das Benutzersteuerelement an

  1. Öffnen Sie das in der vorigen Lektion erstellte NamesUserControl-Projekt. Wenn Sie das Projekt nicht gespeichert haben, müssen Sie zuerst zur vorherigen Lektion, Testen des Benutzersteuerelements, zurückkehren und die Prozeduren in der Lektion abschließen.

  2. Wählen Sie im Projektmappen-Explorer die Option NamesControl.vb und anschließend im Menü Ansicht die Option Designer aus.

  3. Ziehen Sie aus der Toolbox drei Label-Steuerelemente auf den Designer, und platzieren Sie einen über jedem Textfeld.

  4. Wählen Sie im Projektmappen-Explorer die Datei NamesControl.vb aus, und wählen Sie anschließend im Menü Ansicht die Option Code aus.

  5. Fügen Sie im Code-Editor den folgenden Code hinzu, um Eigenschaften für den Bezeichnungstext zu erstellen.

    Private text1 As String = "First Name"
    Property Label1Text() As String
        Get
            Return text1
        End Get
        Set(ByVal value As String)
            text1 = value
            Label1.Text = text1
        End Set
    End Property
    Private text2 As String = "Middle Name"
    Property Label2Text() As String
        Get
            Return text2
        End Get
        Set(ByVal value As String)
            text2 = value
            Label2.Text = text2
        End Set
    End Property
    Private text3 As String = "Last Name"
    Property Label3Text() As String
        Get
            Return text3
        End Get
        Set(ByVal value As String)
            text3 = value
            Label3.Text = text3
        End Set
    End Property
    

    Beachten Sie, dass mit dem Code drei Private-Variablen für den Bezeichnungstext deklariert werden, und dass die Deklarationen den anzuzeigenden Standardwert enthalten.

  6. Wählen Sie im Code-Editor aus dem linken Dropdownfeld die Option NamesControl-Ereignisse aus, und wählen Sie dann aus dem rechten Dropdownfeld das Load-Ereignis aus.

  7. Fügen Sie dem NamesControl_Load-Ereignishandler folgenden Code hinzu.

    ' Initialize the three labels
    Me.Label1.Text = Label1Text
    Me.Label2.Text = Label2Text
    Me.Label3.Text = Label3Text
    
  8. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen.

  9. Wählen Sie im Projektmappen-Explorer die Option Form1.vb und anschließend im Menü Ansicht die Option Designer aus.

    Prüfen Sie, ob die Bezeichnungen den Standardtext aufweisen. Versuchen Sie, die Label1Text-Eigenschaft im Eigenschaftenfenster zu ändern, und vergewissern Sie sich, ob sie sich im Steuerelement gleichermaßen ändert.

  10. Wählen Sie im Menü Datei den Befehl Schließen aus, um den Formular-Designer zu schließen.

Hinzufügen der Validierung

Eine andere nützliche Anpassung besteht darin, Code hinzuzufügen, mit dem die Eingabe validiert wird, um sicherzustellen, dass diese korrekt ist. Statt jedes einzelne der TextBox-Steuerelemente zu validieren, können Sie Validierungscode für das gesamte Benutzersteuerelement schreiben.

Die meisten Steuerelemente verfügen über ein Validating-Ereignis, das ausgelöst wird, wenn der Fokus das Steuerelement verlässt. An dieser Stelle geben Sie den Validierungscode ein. Im vorliegenden Fall schreiben Sie Code, um sicherzustellen, dass jedes Textfeld einen Namen enthält.

Wenn eines oder mehrere der Textfelder leer sind, soll ein Meldungsfeld angezeigt werden, in dem Sie den Benutzer daran erinnern, einen Namen einzugeben. Sie können eine Eigenschaft verfügbar machen, die eine Standardmeldung enthält. Auf diese Weise können Benutzer Ihres Steuerelements die Meldung mit einem eigenen Text versehen.

Es ist auch möglich, dass der Benutzer des Steuerelements keinen zweiten Vornamen hat. Es empfiehlt sich daher, eine Boolean-Eigenschaft hinzuzufügen, um die Validierung für das Textfeld MiddleName auszuschalten.

Übung

So fügen Sie die Validierung hinzu

  1. Fügen Sie im Code-Editor Code für zwei validierungsbezogene Eigenschaften hinzu – eine, um anzugeben, ob ein zweiter Vorname benötigt wird, und eine weitere zur Angabe einer Meldung, die bei Fehlschlagen der Validierung angezeigt wird.

    Private required As Boolean = True
    Property MiddleNameRequired() As Boolean
        Get
            Return required
        End Get
        Set(ByVal value As Boolean)
            required = value
        End Set
    End Property
    Private errormessage As String = "Please enter your name."
    Property ValidationErrorMessage() As String
        Get
            Return errormessage
        End Get
        Set(ByVal value As String)
            errormessage = value
        End Set
    End Property
    
  2. Wählen Sie im Code-Editor NamesControl-Ereignisse aus dem linken Dropdownfeld aus, und wählen Sie dann das Validating-Ereignis aus dem rechten Dropdownfeld aus.

  3. Fügen Sie dem NamesControl_Validating-Ereignishandler folgenden Code hinzu.

    If MiddleNameRequired = True Then
        If FirstName.Text = "" Or MiddleName.Text = "" Or _
    LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    Else
        ' Middle name isn't required.
        If FirstName.Text = "" Or LastName.Text = "" Then
            MsgBox(ValidationErrorMessage)
        End If
    End If
    
  4. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen.

  5. Wählen Sie im Projektmappen-Explorer die Option Form1.vb und anschließend im Menü Ansicht die Option Designer aus.

    Wählen Sie das Benutzersteuerelement auf dem Formular aus, und überprüfen Sie, ob die beiden neuen Eigenschaften im Eigenschaftenfenster angezeigt werden.

  6. Ziehen Sie aus der Toolbox ein Button-Steuerelement auf das Formular.

  7. Drücken Sie F5, um das Programm auszuführen.

    Geben Sie Ihren Vornamen und Ihren Nachnamen, jedoch keinen zweiten Vornamen ein. Klicken Sie auf die Schaltfläche. Daraufhin sollte ein Meldungsfeld angezeigt werden, das die ValidationErrorMessage enthält.

  8. Klicken Sie im Menü Datei auf Alle speichern, um die Eingaben zu speichern.

Nächste Schritte

In dieser Lektion wurde erläutert, wie das Benutzersteuerelement angepasst werden kann, um seinen Nutzen zu erweitern. In der nächsten Lektion erfahren Sie, wie Sie mithilfe von Grafiken Bilder und Text zeichnen.

Nächste Lektion: Zeichnen von Bildern: Verwenden von Grafiken

Siehe auch

Aufgaben

Testen des Benutzersteuerelements

Weitere Ressourcen

Sichtbare Objekte: Erstellen des ersten Benutzersteuerelements

Programmieren mit Objekten: Verwenden von Klassen

Visual Basic-Einführung