Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Benutzersteuerelements, das eine Datenbindung beim Suchen unterstützt
Veröffentlicht: Juli 2016
Zum Anzeigen von Daten in Windows Forms können Sie die in der Toolbox vorhandenen Steuerelemente verwenden oder – falls die gewünschte Funktionalität in den Standardsteuerelementen nicht verfügbar ist – benutzerdefinierte Steuerelemente erstellen. Diese exemplarische Vorgehensweise erläutert, wie Sie ein Steuerelement erstellen, das LookupBindingPropertiesAttribute implementiert. Steuerelemente, die LookupBindingPropertiesAttribute implementieren, können drei Eigenschaften enthalten, die an Daten gebunden werden können. Solche Steuerelemente ähneln einem ComboBox-Steuerelement.
Weitere Informationen zum Erstellen von Steuerelementen finden Sie unter Entwickeln von Windows Forms-Steuerelementen zur Entwurfszeit.
Beim Erstellen von Steuerelementen, die in Datenbindungsszenarios verwendet werden sollen, müssen Sie eines der folgenden Datenbindungsattribute implementieren:
Verwendung von Datenbindungsattributen |
---|
Implementieren Sie DefaultBindingPropertyAttribute für einfache Steuerelemente, die eine einzige Spalte (oder Eigenschaft) von Daten anzeigen, wie das TextBox-Steuerelement. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Benutzersteuerelements, das einfache Datenbindung unterstützt. |
Implementieren Sie ComplexBindingPropertiesAttribute für Steuerelemente, die Listen (oder Tabellen) von Daten anzeigen, wie das DataGridView-Steuerelement. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Windows Forms-Benutzersteuerelements, das komplexe Datenbindung unterstützt. |
Implementieren Sie LookupBindingPropertiesAttribute für Steuerelemente, die Listen (oder Tabellen) von Daten anzeigen, aber auch eine einzelne Spalte oder Eigenschaft darstellen müssen, wie das ComboBox-Steuerelement. (Dieser Prozess wird in dieser exemplarischen Vorgehensweise beschrieben.) |
In dieser exemplarischen Vorgehensweise wird ein Nachschlagesteuerelement erstellt, das an Daten aus zwei Tabellen gebunden ist. In diesem Beispiel werden die Tabellen Customers
und Orders
aus der Beispieldatenbank Northwind verwendet. Das Nachschlagesteuerelement wird an das Feld CustomerID
der Tabelle Orders
gebunden. Das Steuerelement verwendet diesen Wert, um in der Tabelle Customers
den entsprechenden Wert von CompanyName
nachzuschlagen.
Bei dieser exemplarischen Vorgehensweise lernen Sie Folgendes:
Erstellen Sie eine neue Windows-Anwendung.
Hinzufügen eines neuen Benutzersteuerelements zu einem Projekt.
Entwerfen des Benutzersteuerelements im visuellen Designer.
Implementieren des
LookupBindingProperty
-Attributs.Erstellen eines Datasets mit dem Assistent zum Konfigurieren von Datenquellen.
Festlegen der Spalte CustomerID aus der Tabelle Orders auf die Verwendung des neuen Steuerelements (im Datenquellenfenster).
Erstellen eines Formulars, um Daten in dem neuen Steuerelement anzuzeigen.
Vorbereitungsmaßnahmen
Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
- Zugriff auf die Beispieldatenbank Northwind. Weitere Informationen finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.
Erstellen einer Windows-Anwendung
Im ersten Schritt wird eine Windows-Anwendung erstellt.
So erstellen Sie ein neues Windows-Projekt
Erstellen Sie in Visual Studio im Menü Datei ein neues Projekt.
Geben Sie dem Projekt den Namen LookupControlWalkthrough.
Wählen Sie Windows-Anwendung aus, und klicken Sie auf OK. Weitere Informationen finden Sie unter Clientanwendungen.
Das Projekt LookupControlWalkthrough wird erstellt und dem Projektmappen-Explorer hinzugefügt.
Hinzufügen eines Benutzersteuerelements zum Projekt
In dieser exemplarischen Vorgehensweise wird aus einem Benutzersteuerelement ein Nachschlagesteuerelement erstellt. Fügen Sie dem Projekt LookupControlWalkthrough zunächst also ein Benutzersteuerelement hinzu.
So fügen Sie dem Projekt ein Benutzersteuerelement hinzu
Klicken Sie im Menü Projekt auf Benutzersteuerelement hinzufügen.
Geben Sie im Bereich Name die Bezeichnung
LookupBox
ein, und klicken Sie auf Hinzufügen.Das LookupBox-Steuerelement wird dem Projektmappen-Explorer hinzugefügt und im Designer geöffnet.
Entwerfen des LookupBox-Steuerelements
So entwerfen Sie das LookupBox-Steuerelement
- Ziehen Sie ein ComboBox aus der Toolbox auf die Entwurfsoberfläche des Benutzersteuerelements.
Hinzufügen des erforderlichen Datenbindungsattributs
Implementieren Sie für Nachschlagesteuerelemente, die Datenbindung unterstützen, das LookupBindingPropertiesAttribute.
So implementieren Sie das LookupBindingProperties-Attribut
Wechseln Sie für das LookupBox-Steuerelement zur Codeansicht. (Wählen Sie im Menü Ansicht den Befehl Code aus.)
Ersetzen Sie den Code in
LookupBox
durch folgenden Code:using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
<System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")> Public Class LookupBox Public Property DataSource() As Object Get Return ComboBox1.DataSource End Get Set(ByVal value As Object) ComboBox1.DataSource = value End Set End Property Public Property DisplayMember() As String Get Return ComboBox1.DisplayMember End Get Set(ByVal value As String) ComboBox1.DisplayMember = value End Set End Property Public Property ValueMember() As String Get Return ComboBox1.ValueMember End Get Set(ByVal value As String) ComboBox1.ValueMember = value End Set End Property Public Property LookupMember() As String Get Return ComboBox1.SelectedValue.ToString() End Get Set(ByVal value As String) ComboBox1.SelectedValue = value End Set End Property End Class
Wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus.
Erstellen einer Datenquelle aus einer Datenbank
In diesem Schritt wird mit dem Assistenten zum Konfigurieren von Datenquellen eine Datenquelle erstellt, die auf den Tabellen Customers
und Orders
der Beispieldatenbank Northwind basiert. Sie benötigen Zugriff auf die Beispieldatenbank Northwind, um die Verbindung herstellen zu können. Informationen zum Einrichten der Beispieldatenbank Northwind finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.
So erstellen Sie die Datenquelle
Klicken Sie im Menü Daten auf Datenquellen anzeigen.
Wählen Sie im Datenquellenfenster die Option Neue Datenquelle hinzufügen aus, um den Assistenten zum Konfigurieren von Datenquellen zu starten.
Wählen Sie auf der Seite Datenquellentyp auswählen die Option Datenbank aus, und klicken Sie auf Weiter.
Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung einen der folgenden Schritte aus:
Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank "Northwind" verfügbar ist, wählen Sie diese aus.
- oder -
Wählen Sie Neue Verbindung, um das Dialogfeld Verbindung hinzufügen/ändern zu öffnen.
Falls die Datenbank ein Kennwort erfordern sollte, aktivieren Sie die Option für die Einbeziehung vertraulicher Daten, und klicken Sie dann auf Weiter.
Klicken Sie auf der Seite Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern auf Weiter.
Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.
Wählen Sie die Tabellen
Customers
undOrders
aus, und klicken Sie dann auf Fertig stellen.Das NorthwindDataSet wird Ihrem Projekt hinzugefügt, und die Tabellen
Customers
undOrders
werden im Datenquellenfenster angezeigt.
Festlegen der Spalte "CustomerID" aus der Tabelle "Orders" auf die Verwendung des LookupBox-Steuerelements
Im Datenquellenfenster können Sie vor dem Ziehen von Elementen auf das Formular festlegen, welches Steuerelement erstellt werden soll.
So legen Sie die Bindung der Spalte "CustomerID" an das LookupBox-Steuerelement fest
Öffnen Sie Form1 im Designer.
Erweitern Sie im Datenquellenfenster den Knoten Customers.
Erweitern Sie den Knoten Orders (denjenigen, der sich im Knoten Customers unterhalb der Spalte Fax befindet).
Klicken Sie im Knoten Orders auf den Dropdownpfeil, und wählen Sie in der Steuerelementliste die Option Details aus.
Klicken Sie in der Spalte CustomerID (im Knoten Orders) auf den Dropdownpfeil, und wählen Sie Anpassen aus.
Wählen Sie im Dialogfeld Optionen für die Anpassung der Datenbenutzeroberfläche in der Liste Zugeordnete Steuerelemente den Eintrag LookupBox aus.
Klicken Sie auf OK.
Klicken Sie in der Spalte CustomerID auf den Dropdownpfeil, und wählen Sie LookupBox aus.
Hinzufügen von Steuerelementen zum Formular
Sie können die datengebundenen Steuerelemente erstellen, indem Sie Elemente aus dem Datenquellenfenster auf Form1 ziehen.
So erstellen Sie datengebundene Steuerelemente auf dem Windows Form
- Ziehen Sie den Knoten Orders aus dem Datenquellenfenster auf das Windows Form, und stellen Sie sicher, dass das LookupBox-Steuerelement zum Anzeigen der Daten in der Spalte
CustomerID
verwendet wird.
Binden des Steuerelements für das Nachschlagen von CompanyName in der Tabelle Customers
So richten Sie die Nachschlagebindungen ein
Wählen Sie im Datenquellenfenster den Hauptknoten Customers aus, und ziehen Sie ihn auf das Kombinationsfeld in CustomerIDLookupBox von Form1.
Damit wird die Datenbindung so eingerichtet, dass der Wert für
CompanyName
aus der TabelleCustomers
angezeigt und gleichzeitig der Wert fürCustomerID
aus der TabelleOrders
beibehalten wird. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Nachschlagetabellen in Windows Forms-Anwendungen.
Ausführen der Anwendung
So führen Sie die Anwendung aus
Drücken Sie F5, um die Anwendung auszuführen.
Navigieren Sie durch einige Datensätze, und prüfen Sie, ob im
LookupBox
-Steuerelement der Wert vonCompanyName
angezeigt wird.
Siehe auch
Festlegen des Steuerelements, das beim Ziehen aus dem Datenquellenfenster erstellt werden soll
Binden von Windows Forms-Steuerelementen an Daten in Visual Studio
Herstellen von Datenverbindungen in Visual Studio
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung
Binden von Steuerelementen an Daten in Visual Studio
Bearbeiten von Daten in der Anwendung
Überprüfen von Daten
Speichern von Daten