在基于文本的文件

时间:2015-11-18 00:05:04

标签: c# arrays wpf winforms file-io

目前,我的程序(http://1drv.ms/1k1jVND)加载到两个字符串数组(一个' In',一个' Out')文件中的所有行(示例包含在上述存档的“数据”文件夹)通过File.ReadAllLines(),然后将每行从数组复制到相应的WinForms TextBox中:

string file;
public string[] linesIn;
public string[] linesOut;
.........
.........
linesIn = File.ReadAllLines(file);
linesOut = linesIn 
.........
.........
textBox10.Text = linesIn[27];

然后,当需要保存文件时,我会将每个文本框的内容写入' Out'中的相应位置。阵列:

linesOut[27] = textBox10.Text

(拥有这两个阵列的原因是我认为,如果用户在保存了他们加载的文件之后想要原始值,那么实现'还原功能可能是一种简单的方法;这个功能还没有实现,现在我想起来了,我不知道我是否真的会这样做,在回答这个问题时,请随意考虑它是否可以消耗)

这似乎远非最有效的做事方式,因为我计划将整个事情重写为WPF程序,我希望有人可以告诉我一个更好的方式谈论它。

我想知道是否有某种方式可以“联系”。每个TextBox到相应的Array索引,这样更改TextBox会自动更新Array内容吗? (没有大约120个TextChanged事件)

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果要将txtBox0映射到数组项0等,则可以执行以下操作。
这将用于加载文本框。一种类似的保存方法。
其中txtBox(n)是文本框的命名约定,文本框的容器是Form1。

int i = 0;
for(i=0; i < linesIn.Count-1;i++)
{
    TextBox t = (TextBox)Form1.Controls.Find("txtBox"+i);
    t.Text = linesIn[i];

}
相关问题