ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 04.04.2001

Diese Seite wurde zuletzt aktualisiert am 04.04.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Ahnenforschung

Zurück...


Anzeige

(-hg) mailto:hg_controlarray@aboutvb.de

Möchten Sie von einem Element eines Steuerelemente-Feldes (Control-Arrays) ausgehend die aktuelle Untergrenze oder Obergrenze des Feldes ermitteln? Oder möchten Sie wissen, wie viele Elemente des Steuerelemente-Feldes aktuell geladen sind? Oder möchten Sie Elemente hinzuladen, ohne jedoch vorher im Code das betreffende Steuerelemente-Feld festlegen zu müssen? Dann brauchen Sie eine Möglichkeit, zu einem Element eben dieses Steuerelemente-Feld zu ermitteln. Eine kleine Ungereimtheit verhilft Ihnen dazu.

Einerseits erhalten Sie, wenn Sie die Controls-Collection eines Containers (Form, UserControl usw.) durchsuchen, zu jedem dort vorhandenen Steuerelement den Namen. Bei Steuerelementen, die Element eines Steuerelemente-Feldes sind, erhalten Sie dabei jeweils den Stammnamen, unabhängig vom Index des Elements. Haben Sie beispielsweise drei Elemente des Steuerelemente-Feldes "Command1" in einem Form1 geladen, so wird Ihnen die folgende Schleife (neben der Namen anderer Steuerelemente auf diesem Form) dreimal den Namen "Command1" ausgeben:

Dim nControl As Control

For Each nControl In Form1.Controls
  Debug.Print nControl.Name
Next

Normalerweise können Sie ja den Namen eines Steuerelements als Schlüssel verwenden, um auf das Steuerelement über die Controls-Collection zuzugreifen - beispielsweise:

Debug.Print Controls("Command1").Caption

Allerdings funktioniert das nur dann, wenn Command1 ein einzelnes Steuerelement ist. Handelt es sich jedoch um ein Steuerelemente-Feld, liefert Ihnen die Controls-Collection das Stamm-Objekt des Steuerelemente-Feldes. Dieses ist jedoch nicht etwa das erste zur Entwurfszeit auf dem Form angelegte Steuerelement (meistens ursprünglich mit dem Index 0), sondern ein eigenständiges Objekt, das Stamm-Objekt des Steuerelemente-Feldes. Und dieses Objekt liefert Ihnen in seinen Eigenschaften die gesuchte Unter- und Obergrenze (.lbound und .ubound) und die Anzahl der geladenen Elemente (.Count).

Verpacken Sie die Ermittlung dieses Stamm-Objekts in die folgende kleine Hilfsfunktion:

Public Function ControlArray(Control As Control) As Object
  Set ControlArray = Control.Parent.Controls(Control.Name)
End Function

Eine weitere Hilfsfunktion lädt zu einem gegebenen Element eines Steuerelemente-Feldes ein neues Element hinzu, wobei immer automatisch der nächsthöchste Index verwendet wird, und gibt das geladene Element zur weiteren Verwendung zurück:

Public Function LoadControl(Control As Control) As Control
  Dim nControlArray As Object
  Dim nNewIndex As Integer
  
  Set nControlArray = Control.Parent.Controls(Control.Name)
  nNewIndex = nControlArray.ubound + 1
  Load nControlArray(nNewIndex)
  Set LoadControl = nControlArray(nNewIndex)
End Function

Beispiel-Projekt und Modul modControlArray (controlarray.zip - ca. 2,8 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer