从多个文本框中获取文本

Posted

技术标签:

【中文标题】从多个文本框中获取文本【英文标题】: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 是的,只有这些 【参考方案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吗?

以上是关于从多个文本框中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

c# 将从单个文本框中获取的多个值分配给标签

无法从文本框中获取更新的值

如何从报表上的选定文本框中提取文本? VBA

从文本框中使用 jquery mobile 填充下拉列表

从html输入文本框中按回车键时如何防止回发?

如何让word文本框中的文字垂直上下居中