C#中的variablesID

在编写Windows Forms应用程序时,我发现自己必须根据input的数量创build可变数量的文本字段。

我决定命名这些name1name2name3 ,…, nameN

现在我想能够将用户的input保存到文本文件。 要做到这一点,我需要从文本框中的文本到单独的variables,以便能够将其写入文本文件。

这将导致这样的for循环:

 for(i=0; i < totalnames; i++) { string varname= "name" + i; } 

但是这样我就无法从文本框中获得价值。 如何从文本框中获取单独的值以将其写入文本文件?

谢谢,

Solutions Collecting From Web of "C#中的variablesID"

当您创建表单控件时,请将其引用到列表中:

 // probably at the class level... List<TextBox> myTextBoxes = new List<TextBox>(); // then when you create them... myTextBoxes.Add(name1); // etc. 

然后,当你需要引用它们时,使用列表:

 foreach (var textBox in myTextBoxes) { // get the value from the text box and use it in your output } 

您可以创建一个字符串列表的列表,并添加您的名字。 然后使用StreamWriter在您的文件中添加名称:

  List<string> myListOfNames = new List<string>(); int totalnames = 10; for (int i = 0; i < totalnames; i++) { myListOfNames.Add("name" + i); } using (StreamWriter writer = new StreamWriter("C:\\MyTextFile.txt", true)) { foreach (string name in myListOfNames) { writer.WriteLine(name); } } 

这是我的两个便宜的价值,因为OP原来说的Windows窗体应用程序 – 我会有一个保存 button ,当被解雇,后面的代码将抓住所有的文本框,并保存到文件。 如果需要,您可以自行添加自己的文本框过滤。

首先这里是按钮事件的代码:

  private void saveToFile_Click(object sender, EventArgs e) { using (StreamWriter writer = new StreamWriter("C:\\k\\saveToFile.txt", true)) { if (this.Controls.Count > 0) { var textBoxes = this.Controls.OfType<TextBox>(); foreach (TextBox textbox in textBoxes) { writer.WriteLine(textbox.Name + "=" + textbox.Text); } } } } 

一个简单的forn来证明这一点,每个TextBox有一个名字name1

在这里输入图像描述

这里还有一个文件的输出示例:

在这里输入图像描述

改进

  1. 在文本框上过滤 – 你可能只想做一些特定名字的文本框。
  2. 加载文件。 我已经将文本框名称添加到文件中,所以在理论上可以将数据加载回文本框。