Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

Iterieren in einer Form: GetNextControl()

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.

Comments (1) -

  • Reini

    3/21/2007 7:17:37 AM |

    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.

Comments are closed