【问题标题】:Getting text from multiple textboxes从多个文本框中获取文本
【发布时间】:2021-08-31 22:33:04
【问题描述】:

我有 3 个文本框 ip_textBoxport_textBoxnode_textBox,其值是通过读取 App.Config 文件填充的。这些作为键值对存储在 App.Config 文件中。格式如下。

 <appSettings>
    <add key="IP"   value=" " /> // ip address comes here
    <add key="Port"  value="9999" />
    <add key="NodePath"  value="C:\\Desktop\\Test.js" />
  </appSettings>

完成更改后,我需要将文本框值保存回 XML 文件。

我有一个函数UpdateXml()

 public static void UpdateXml(string key, string value)
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
            config.AppSettings.Settings[key].Value = value;
            config.Save(ConfigurationSaveMode.Minimal);
        }

可用于在按钮单击事件上更新App.Config 文件。我最初的方法是为每个文本框值调用UpdateXml() 函数,如下所示:

  private void Btn_Save_Click(object sender, EventArgs e)
        {
         string ip = ip_textBox.Text;
         string port = port_textBox.Text;
         string node = node_textBox.Text;
                
         UpdateXml("IP", ip);
         UpdateXml("Port", port);
         UpdateXml("NodePath", node );
        }

由于UpdateXml() 的两个参数都需要迭代,我想知道一次性保存所有三个参数的最有效方法是什么。

【问题讨论】:

  • 只有这些文本框吗?他们一起在一个组框里吗?有一种方法可以提取相同类型的所有控件。这可以使用,并且您的文本框名称的前缀可以用作保存时的键
  • 是的,所有的文本框都在一个tablelayoutpanel中
  • 这些是该面板内仅有的文本框吗?
  • @MongZhu 是的,只有这些

标签: c# xml function winforms loops


【解决方案1】:

这样就可以了,不需要单独的方法。

config.AppSettings.Settings.Add("IP", ip_textBox.Text);
config.AppSettings.Settings.Add("Port", port_textBox.Text);
config.AppSettings.Settings.Add("NodePath", node_textBox.Text);

如果你真的想创建一个方法,那么不需要对方法使用任何参数,只需在方法中写上上述几行即可。

【讨论】:

  • 保存配置怎么样?更改会立即反映还是我必须重新启动应用程序?
  • 我没试过,我已经回答了你原来的问题
  • 实际上,.Add() 方法是在输入的内容中附加现有值。 config.AppSettings.Settings["IP"].Value = ip_textBox.Text 是我想要的。我的错误
  • 我不确定,但你能试试config.AppSettings.Settings["IP"] = ip_textBox.Text吗?
猜你喜欢
  • 2016-03-19
  • 2018-08-04
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
相关资源
最近更新 更多