//在引用里添加
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();
问题:
有两个按钮,按钮一将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 来获取和设置文本框中的内容,具体代码如下:
首先你要读写文件,就要引用:
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名称的控件,这样通过与循环组合就可以实现你功能。
意思信息希望对你有帮助^^