Iterieren in einer Form: GetNextControl()


Thomas Wölfer
Thomas Wölfer

03. August 2004


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.