c#:textbox中数据保存到txt文本中,从文本读取数据到textbox.

2024-10-29 10:32:49
推荐回答(4个)
回答1:

你提取的数据可以用一个二维数组保存,str[2,10]。另外通过循环 i 来获取和设置文本框中的内容,具体代码如下:

首先你要读写文件,就要引用:

using System.IO;

你上文说的i,我写成全局变量,你可以在需要的代码中修改:

int count = 3;

按钮一,即从文本框中获取值并写入到文件的代码:

private void button1_Click(object sender, EventArgs e)
{
    string[,] str = new string[2, count];
    StreamWriter sw = File.CreateText("D:\\123.txt");
    for (int i = 0; i < count; i++)
    {
        string controlName1 = string.Format("textBox{0}",i+1);
        string controlName2 = string.Format("textBox1{0}", i+1);
        str[0,i] = (Controls.Find(controlName1, false)[0]).Text;
        str[1,i] = (Controls.Find(controlName2, false)[0]).Text;
        sw.WriteLine(str[0,i]);
        sw.WriteLine(str[1,i]);
    }
    sw.Close();
}

按钮二,从文件中读取数据然后赋值到文本框中的代码:

private void button2_Click(object sender, EventArgs e)
{
    string[,] str = new string[2, count];
    StreamReader sr = File.OpenText("D:\\123.txt");
    int k = 0;//当前读取的是第几行
    while (sr.Peek() != -1)
    {
        str[k % 2, k / 2] = sr.ReadLine();
        k++;
    }
    for (int i = 1; i <= count; i++)
    {
        string controlName1 = string.Format("textBox{0}", i );
        string controlName2 = string.Format("textBox1{0}", i );
        (Controls.Find(controlName1, false)[0]).Text = str[0, i-1];
        (Controls.Find(controlName2, false)[0]).Text = str[1, i-1];
    }
    sr.Close();
}

 你按上面代码写试试,应该可以实现,我自己试验过的。

 

另外Controls.Find()函数可以获取指定ID名称的控件,这样通过与循环组合就可以实现你功能。

 

意思信息希望对你有帮助^^

回答2:

//在引用里添加
using System.IO;

///窗体应用类中写方法

//写入
StreamWriter sw=new StreamWriter(TXT文件完整路径);
sw.WriterLine(你要写入的内容,可以换行带格式);
sw.Flush();//文件流
sw.Close();//最后要关闭写入状态

//读取
System.IO.StreamReader st;
st=new System.IO.StreamReader(TXT文件完整路径,System.Text.Encoding.UTF8);
//UTF-8通用编码
string 要读取的字符串=st.ReadToEnd();
st.Close();

回答3:

在存储的时候可以以数组的方式存储,存到文件中是一串拼接起来的字符串;读取的时候直接分割就行了

回答4:

按照描述应该是20个文本框 数据具体的是一组数据还是不同文本框内对应不同的数据这个没表示清楚,如果是相同的数据很简单 填充文本框就可以,如果是不同的数据 保存的时候就要区分了