编写Windows窗体应用程序时,我发现自己必须根据输入的数量创建可变数量的文本字段。
我决定将这些name1
,name2
,name3
,...,nameN
命名为。
现在我希望能够将用户的输入保存到文本文件中。为此,我需要将文本框中的文本转换为单独的变量,以便将其写入文本文件。
这会导致像这样的for循环:
for(i=0; i < totalnames; i++)
{
string varname= "name" + i;
}
但是这样我无法从文本框中获取值。如何从文本框中获取单独的值以将其写入文本文件?
谢谢,
答案 0 :(得分:1)
创建表单控件时,请在列表中保留对它们的引用:
// 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
}
答案 1 :(得分:0)
您可以创建一个字符串List列表并在其中添加您的名字。然后使用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);
}
}
答案 2 :(得分:0)
这是我的两个便士价值,因为OP最初说 Windows Form Application - 我会有一个保存 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 等。
此处还有文件的示例输出:
<强>改进强>