private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
button3.Enabled = false;
string count = "";
button2.Enabled = false;
OpenFileDialog file = new OpenFileDialog();
file.Filter = "文本文件|*.txt"; //预设选择文件的类型.为*.txt
file.RestoreDirectory = true; //在关闭对话框前使其目录初始化,不写也可以,自己目前是没发觉有什么用
try
{
if (file.ShowDialog() == DialogResult.OK)
{
toolStripStatusLabel1.Text = "正在导入,请稍后...";
StreamReader sr = new StreamReader(file.FileName);
string strline = sr.ReadLine();
while (strline != null)
{
string[] str = strline.Split('|');
Admin admin = new Admin(); //这里其实是自己写的一个类.下面有代码,很简单,就两句话
admin.name = str[0];
admin.pwd = str[1];
lstAdmin.Add(admin); //这里就是个LIST列表,把每个帐号的信息都加载进列表中
listBox1.Items.Add(str[0] + "|" + str[1]); //把此行读取的内容显示在listBox中
strline = sr.ReadLine(); //这里不知道该怎么解释.基础知识不是很好,只知道如果不加这句的话是死循环,只会读取第一行的内容.不往下读
}
sr.Close();
count = lstAdmin.Count.ToString(); //把加载进listBox中的信息总数赋给变量count
toolStripStatusLabel1.Text = "当前账户:" + count;
}
}
catch
{
toolStripStatusLabel1.Text = "导入文件有误!";
}
button2.Enabled = true;
button3.Enabled = true;
}
class Admin
{
public string name
{ get; set; }
public string pwd
{ get; set; }
}
上面就是我写的一个方法.写在backgroundWorker中是因为如果导入文件数据量过大的话不至于导致程序卡死.(好像是废话.说多了..不过我确实只是个新手.按照我的理解来吧)
把知识点基本上都写在备注中了.这只是我在网上自己找的方法进而综合起来的东西.如果有更好的办法请多指教