c#: Create new settings at run time

前端 未结 8 787
粉色の甜心
粉色の甜心 2020-12-10 01:44

c# windows forms: How do you create new settings at run time so that they are permanently saved as Settings.Default.-- values?

8条回答
  •  自闭症患者
    2020-12-10 01:53

    You can't add settings directly (at least not without editing the config XML at runtime), but you can fake it.

    In my case, I had a group of identical custom controls on the form, and I wanted to store the runtime state of each control. I needed to store the state of each control, since each one had different data it.

    I created a new StringCollection setting named ControlData and placed my own data in there. I then load the data from that list and use it to initialize my controls.

    The list looks like this:

    Box1Text=A
    Box1List=abc;def;foo;bar;
    Box2Text=hello
    Box2List=server1;server2;
    

    In my startup code, I read through the key/value pairs like this:

    foreach (string item in Properties.Settings.Default.ControlData) {
      string[] parts=item.split('=');
    

    parts[0] will have the key and parts[1] will have the value. You can now do stuff based on this data.

    During the shutdown phase, I do the inverse to write the data back to the list. (Iterate through all the controls in the form and add their settings to ControlData.

提交回复
热议问题