如何重新加载表单

时间:2015-10-22 14:18:18

标签: c# .net

我一直在寻找解决方案,但仍未找到任何结果 这是我的代码:

private void Form1_Load(object sender, EventArgs e)
{
    RichTextBox rtb = new RichTextBox();
    rtb.Text = File.ReadAllText(@"C:\Users\Admin\Desktop\myfile\customers.txt");
    int i = 0;
    foreach (string line in rtb.Lines)
    {
        if (line == "--")
        {
            ListViewItem item = new ListViewItem();
            item.Text = rtb.Lines[i + 1];
            item.SubItems.Add(rtb.Lines[i + 2]);
            item.SubItems.Add(rtb.Lines[i + 3]);
            item.SubItems.Add(rtb.Lines[i + 4]);
            listView1.Items.Add(item);
        }

        i += 1;
    }
}

private void button1_Click(object sender, EventArgs e)
{
    Form2 pop = new Form2();
    pop.ShowDialog();

    string name = pop.name;
    int age = int.Parse(pop.Age);
    string dob = pop.DateOfBirth;
    string addr = pop.Address;

    StreamWriter write = new StreamWriter(@"C:\Users\Admin\Desktop\myfile\customers.txt",true);

    write.Write("--\n");
    write.Write("{0}\n",name);
    write.Write("{0}\n",dob);
    write.Write("{0}\n",age);
    write.Write("{0}\n",addr);
    write.Close();
}

问题是如何在将数据写入文本文件后重新加载列表视图?

1 个答案:

答案 0 :(得分:3)

从Form1_Load中提取逻辑

private void Form1_Load(object sender, EventArgs e)
{
    RefreshListView();
}

private void button1_Click(object sender, EventArgs e)
{
    Form2 pop = new Form2();
    pop.ShowDialog();

    string name = pop.name;
    int age = int.Parse(pop.Age);
    string dob = pop.DateOfBirth;
    string addr = pop.Address;


                    StreamWriter write = new StreamWriter(@"C:\Users\Admin\Desktop\myfile\customers.txt",true);

                    write.Write("--\n");
                    write.Write("{0}\n",name);
                    write.Write("{0}\n",dob);
                    write.Write("{0}\n",age);
                    write.Write("{0}\n",addr);
                    write.Close();

     RefreshListView();
}

private void RefreshListView()
{
    listView1.Items.Clear();

    RichTextBox rtb = new RichTextBox();
    rtb.Text = File.ReadAllText(@"C:\Users\Admin\Desktop\myfile\customers.txt");
    int i = 0;
    foreach (string line in rtb.Lines)
    {
        if (line == "--")
        {
            ListViewItem item = new ListViewItem();
            item.Text = rtb.Lines[i + 1];
            item.SubItems.Add(rtb.Lines[i + 2]);
            item.SubItems.Add(rtb.Lines[i + 3]);
            item.SubItems.Add(rtb.Lines[i + 4]);
            listView1.Items.Add(item);
        }

        i += 1;
    }
}