C#窗体中,textbox中数据保存到txt文本中,从文本读取数据到textbox

2022-10-22 11:17:15
//在引用里添加
usingSystem.IO;
///窗体应用类中写方法
//写入
StreamWriter sw=newStreamWriter(TXT文件完整路径);
sw.WriterLine(你要写入的内容,可以换行带格式);
sw.Flush();//文件流
sw.Close();//最后要关闭写入状态
//读取
System.IO.StreamReader st;
st=newSystem.IO.StreamReader(TXT文件完整路径,System.Text.Encoding.UTF8);
//UTF-8通用编码
string要读取的字符串=st.ReadToEnd();
st.Close();


问题:

有两个按钮,按钮一将textbox中数据保存到txt文本中,按钮2从文本读取数据到textbox.如果是一个两个,这个我
会。现在的问题是两组textbox,分别是textbox1~10,textbox11~20.i=1~10,i随机。比如当I=5时,就保存text1~5,
text11~15的数据。读取时也是相应的读取。求大师,能调试成功的加分。保存到D:/123.txt.
答案:

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

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

usingSystem.IO;

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

intcount = 3;

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

privatevoidbutton1_Click(objectsender, EventArgs e)
{
string[,] str =newstring[2, count];
StreamWriter sw = File.CreateText("D:\\123.txt");
for(inti = 0; i < count; i++)
{
stringcontrolName1 =string.Format("textBox{0}",i+1);
stringcontrolName2 =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();
}

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

privatevoidbutton2_Click(objectsender, EventArgs e)
{
string[,] str =newstring[2, count];
StreamReader sr = File.OpenText("D:\\123.txt");
intk = 0;//当前读取的是第几行
while(sr.Peek() != -1)
{
str[k % 2, k / 2] = sr.ReadLine();
k++;
}
for(inti = 1; i <= count; i++)
{
stringcontrolName1 =string.Format("textBox{0}", i );
stringcontrolName2 =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名称的控件,这样通过与循环组合就可以实现你功能。

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


  • 作者:dxmcu
  • 原文链接:https://blog.csdn.net/dddxxxx/article/details/51385161
    更新时间:2022-10-22 11:17:15