Iterieren in einer Form: GetNextControl()

3. August 2004 16:36

Beim iterieren über Controls in einer Fom muss man ein paar Dinge berücksichtigen:

  • Form.Controls enthält nicht alle Controls auf der Form. Ist eines der Controls ein Container (zum Beispiel eine GroupBox), dann befinden sich die Controls die sich darin befinden in dessen 'Controls' Collection.
  • Handelt es sich bei der Form um eine Dialogbox, dann muss man die Tab-Order berücksichtigen. Form.Controls enthält die Controls aber nicht in der Reihenfolge der Tab-Order.

Um die Controls in der Reihenfolge der Tab-Order zu erhalten benutzt man GetNextControl(). GetNextControl bekommt zwei Parameter: Der eine ist ein Startwert: Geliefert wird das Control vor oder nach diesem Startwert. Das nächste wird geliefert wenn der zweite Parameter 'true' ist.

Was die Dokumentation nicht sagt ist, wie man an das erste Control kommt. Dazu übergibt man als 'Startwert' 'null - dann liefert die Funktion eben das erste Control.

Kommentare

21.03.2007 09:17:37 #

Sehr aufschlussreich. Da wollte ich "mal eben" eine Funktion schreiben, die ein Stammdaten-Form leer macht - aber bevor ich nun analysiere, ob es sich um GroupBoxes, TabPages, etc. handelt und mir deren Controls auch noch idealerweise rekursiv holen darf, mache ich es wohl Feld für Feld.

Danke für ersparte Mühe.

Reini

Kommentare sind geschlossen

Kalender

<<  Mai 2012  >>
MoDiMiDoFrSaSo
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar