Keep Track of Index Numbers

Keep Track of Index Numbers

When using control arrays, I find it difficult to keep track of the index number of each control. Even if I use constants, I often have to look up the constant name for each field. Now, instead of using constants for each index number, I use this code. First, I declare an enumerated type for the index numbers:

 Enum FieldConstants	LastName = 0	FirstName = 1	Age = 2	Address = 3End Enum

I then create a property wrapper for the control array. The wrapper takes in an enumerated constant that represents the index number and returns the control in the array:

 Property Get Fields(ByVal FieldNum As FieldConstants) _	As TextBox	Set Fields = txtFields(FieldNum)End Property

The advantage to this wrapper is that when you type the property name, Fields, VB prompts you with the constant names listed in the enumerated type. This way, you can refer to controls in the array by name, and you never have to look up constant names again. Also, it makes the code more legible:

 Private Sub Form_Load()	Fields(LastName).Text = "Mojica"End Sub


Share the Post: