Sicherlich kennen Sie alle die Data-Eigenschaften einer Textbox, an der Sie ein beliebiges DataControl binden können, um so Zugriff auf eine Datenbank nehmen zu können. Nun folgende Ausgangssituation: Die Lösung liegt in den Prozedurattributen! Damit wir nun die Data-Eigenschaften nutzen können, müssen Sie im ersten Schritt eine beliebige Eigenschaft vom Type String anlegen. Für unser Beispiel benennen wir die Eigenschaft cField. Nachdem Sie nun die Eigenschaft erzeugt haben, gehen Sie zu den Prozedurattributen im Menü "Extras" und wählen unter "Name" die Eigenschaft aus. Aktivieren Sie nun die Attribute und Datenbindungen wie in der Darstellung angezeigt. Siehe da - wenn wir nun unser UserControl auf eine Form ziehen, steht dem Entwickler ab sofort die Data-Eigenschaften zur Verfügung. Doch es fehlt noch ein wenig Code im UserControl, damit das Ganze auch richtig funktioniert. Für unser Beispiel benötigen wir weiterhin noch eine TextBox (Text1) im UserControl. Fügen Sie jetzt den folgenden Code in das Codefenster des UserControls: ' *************************************************** ' * ' * DataBindings im UserControl ' * ' * Aktivieren Sie in den Prozedurattributen für ' * "cField" folgende Eigenschaften: ' * - Im Eigenschafenkatalog nicht anzeigen ' * - Datengebundene Eigenschaft ' * - An Daten-Feld gebunden ' * - CanPropertyChange vor Änderung aufrufen ' * - Sofort aktualisieren ' * ' * April 2005, VB-Power.net www.vb-power.net ' * ' *************************************************** Option Explicit Private Const m_def_cField As String = "" Dim m_cField As String Dim isChange As Boolean Private Sub Text1_Change() isChange = True End Sub Private Sub Text1_Validate(Cancel As Boolean) If isChange Then PropertyChanged "cField" isChange = False End If End Sub ' Eigenschaften für Benutzersteuerelement initialisieren Private Sub UserControl_InitProperties() m_cField = m_def_cField End Sub ' Eigenschaftenwerte vom Speicher laden Private Sub UserControl_ReadProperties(PropBag As PropertyBag) m_cField = PropBag.ReadProperty("cField", m_def_cField) End Sub ' Eigenschaftenwerte in den Speicher schreiben Private Sub UserControl_WriteProperties(PropBag As PropertyBag) Call PropBag.WriteProperty("cField", m_cField, m_def_cField) End Sub Public Property Get cField() As String m_cField = Text1.Text cField = m_cField End Property Public Property Let cField(ByVal New_cField As String) m_cField = New_cField Text1.Text = New_cField PropertyChanged "cField" End Property Anmerkung: Die hier aufgezeigte Methode lässt sich ohne weiteres auch auf ein Label anwenden. Hierbei benötigen Sie noch nicht mal die Eigenschaft "cField". Sie können die Datenbindung direkt an die Eigenschaft "Caption" des Labels vornehmen, da das Label kein Datenfeld aktualisieren, sondern nur Anzeigen kann. Viel Spaß mit den DataBindings Dieser Tipp wurde bereits 13.379 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |