从多个文本框中获取文本
Posted
技术标签:
【中文标题】从多个文本框中获取文本【英文标题】:Getting text from multiple textboxes 【发布时间】:2021-08-31 22:33:04 【问题描述】:我有 3 个文本框 ip_textBox
、port_textBox
、node_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
吗?以上是关于从多个文本框中获取文本的主要内容,如果未能解决你的问题,请参考以下文章