这是我的config.ini的内容
[第一页参数]
txtZhuNeiJianZhi4=0
txtZhuNeiJiChu4=320
txtZhuNeiDangAn4=600
txtZhuNeiZhiLiang4=1
txtZhuNeiGuaGou4=0.24
txtZhuNeiBingJia4=0
.....在一个form中,我有很多很多个textbox,采用遍历所有textbox的方式,将textbox的名字及其对应的值记入了config.ini。现在在程序启动时,要能够把上次存储的值读出来。
这是遍历所有textbox,并将值写入config.ini的部分代码,反过来要读出来,并赋值给相应的textbox,怎么办?
            foreach (Control ct in this.tabControl1.TabPages[0].Controls)
            {
                if (ct is TextBox)
                {
                    TextBox tb = (TextBox)ct;
                    //tb.Text = "tb";
                    file.WriteValue("第一页参数", tb.Name, tb.Text);
                }            }
            foreach (Control ct in this.tabControl1.TabPages[1].Controls)
            {
                if (ct is TextBox)
                {
                    TextBox tb = (TextBox)ct;
                    //tb.Text = "tb";
                    file.WriteValue("第二页参数", tb.Name, tb.Text);
                }            }

解决方案 »

  1.   

    .Net有自己的配置系统,在System.Configuration.dll文件中,项目中使用需要using System.Configuration
    你自己定义INI文件,是抱着金子找人借银子WebForm的配置文件是Web.config
    WinForm的配置文件是app.config,编译后是可执行文件名.config,如,编译后的文件为test.exe,对应的配置文件为test.exe.config
    在项目中添加->配置文件,会自动生成对应的配置文件
    如:
    string s = ConfigurationManager.AppSettings["textbox1"];
    ConfigurationManager是一个获取配置信息的工具类,很方便,要写的时候用Xmldocment类的Save方法
      

  2.   

    再说白了,就是不想把每个textbox 都写一行读出和写入配置文件的代码。因为这些textbox的个数有超过100个。一般的读写我都有函数了,就是上面提到的file.WriteValue和file.GetValue。问题在于GetValue需要指定名称,如你说的textbox1,现在就是需要不指定名称,直接读出这个名称及对应的值,然后将这个值赋给对应名称的textbox
      

  3.   

    你是要这个东西吧?private void Form1_Paint(object sender, PaintEventArgs e)
            {
                //假设以下dict为你从INI读取出来的数据(键值对集合)
                Dictionary<string,string> dict=new Dictionary<string,string>();
                foreach(KeyValuePair<string,string> kv in dict)
                {
                    //kv.key是控件的名字:Control.Name
                    //设置对应的控件的Text属性
                    this.Controls[kv.Key].Text = kv.Value;
                }
            }