I am in need of some guidance for the following design. 

I have a tab control that contains various group boxes. Within the group box, there are specific controls that relates to that group box. For example:

![enter image description here](https://i.stack.imgur.com/IU7D0.jpg) 

Now whenever a change is made to any control in the group box, the value for the control needs to be tracked because at the end of the application run cycle, the control data will need to be saved to a file that contains that value. An example file is:

`HOT_STANDBY_FEATURE_ENABLE [val from control here]`

`HEART_BEAT_DIGITAL_OUTPUT [val from control here]`
....

A design that I have in mind has another that has just properties that the group box form sets whenever a ValueChanged event occurs on a control. 

**Example code:**

```
class ConfigurationValues
{
    public int HotStandbyValue { get; set; }
    public int HeartBeatDigitalOutputValue { get; set; }
    //...add all other controls here
}

```

The downside that I see to this is that there are 40 controls on that tab page, so I'd have to manually type each property. When the file needs to be generated at the end of the application run cycle, I have a method that gets the value of the control need. 

**Example:**

```
private void GenerateFile()
{
    string[] file = 
    "HOT_STANDBY_FEATURE_ENABLE "  + ConfigurationTabSettings.HotStandbyValue;
}

```

Another design consideration I need to make is that whenever a user clicks "Open Configuration File", the values from the file from disk need to be loaded into the properties so the form can take that data on startup and populate the controls within the group boxes with their respective values.

Any suggestions on this design would be greatly appreciated. I know this is not the most efficent way to do this and am not the most experienced programmer, so any Google keywords I can search for would be great also.