How to edit and save settings in a Form?

后端 未结 2 1283
日久生厌
日久生厌 2020-12-07 03:22

I have a form that contains several text boxes, radio buttons, checkboxes etc. Right now I am saving their values respectively by declaring each one and saving to the progra

相关标签:
2条回答
  • 2020-12-07 03:41

    One way of doing this would be to loop through all the controls and in each iteration check the type of the current control and save accordingly. However I'm not too sure what you can do about the RadioButtons/CheckBoxes.

    foreach (var c in this.Controls)
    {
        var _type = c.GetType();
        if (_type == typeof(TextBox))
        {
            // Cast it to a textbox and save it's text property
        }
        elseif (_type == typeof(ListBox)
        {
            // Cast it to a listbox and save it's items property
        }
        // So on...
     }
    
    0 讨论(0)
  • 2020-12-07 03:46

    You can use property binding to application settings.

    This way you can simply save settings by calling Properties.Settings.Default.Save(); and you don't need to loop over controls, because the properties are bound to settings and their values automatically push into settings on change.

    You can bind properties to settings using designer or using code.

    Using Designer

    select your control at design time, then in property grid, under (ApplicationSettings) click ... for (PropertyBinding) and from the dialog, bind the properties you need to the settings.

    Using Code

    You can bind properties to settings, using code the same way you do it when data-binding using code:

    this.textBox1.DataBindings.Add(
        new System.Windows.Forms.Binding("Text", Properties.Settings.Default, "Test", true,
            DataSourceUpdateMode.OnPropertyChanged));
    

    Save Settings

    To save settings, it's enough to call Save() on settings object some where like Closing event of form:

    Properties.Settings.Default.Save();
    

    Note

    As an alternative to different controls for settings, you can also use a PropertyGrid to show all the settings and edit them.

    0 讨论(0)
提交回复
热议问题