c# - 从文本文件中获取字符串行,并在标签中显示文本

时间:2014-08-20 02:58:07

标签: c#

我正在学习C#并创建这个程序以学习更多东西 我的程序捕获您输入的信息并将其保存到文本文件中。在这一部分,没关系,但我在加载文件时出现问题并在其中显示信息 例如,在程序中我有用户输入文本框的家庭信息:
爸爸文字框:
妈妈文字框:
Brother文本框:
文本框输入类似于:
爸爸文本框:MyDad
妈妈文字框:MyMom
Brother文本框:MyBrother
当文件的创建过程开始时,我在文件中有我想要的输出:
MyDad
MyMom
MyBrother

好的,现在我需要从文件中加载这些信息并将其写入另一个标签,例如:
你的爸爸是:根据例子,我想在这里显示“MyDad” 你的母亲是:根据例子,我想在这里显示“MyMother” 你的兄弟是:根据例子,我想要在这里显示“MyBrother”
在按钮的单击事件中显示文件的信息,我有这个来检查文件是否已创建,如果是,则读取它:

string path = @"C:\Users\Hypister\Desktop\Family.txt";
if (File.Exists(path))
            {
                using (StreamReader sr = File.OpenText(path))
                {
                    //Here I need the function to get the lines and show it in respective labels.
                }
            }
            else
            {
                MessageBox.Show("The file doesn't exists. Data cannot be loaded.");
            }

但是我无法从档案中找到爸爸,母亲和兄弟的话 我希望有人能回答这个问题并帮助我获得更多知识 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我为您编写了一个示例,一个好的C#文件引用是http://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx以供将来参考。

有3个文本框3个标签和一个按钮都是默认名称

这里的源代码希望它有所帮助:)

  private void button1_Click(object sender, EventArgs e)
    {
        List<string> family = new List<string>();
        family.Add(textBox1.Text);
        family.Add(textBox2.Text);
        family.Add(textBox3.Text);

        family.ToArray();

        using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\OEM\Desktop\stackoverflow\test.txt"))
        {
            foreach (string line in family)
            {                   
                    file.WriteLine(line);
            }
        }

        string[] familyout = System.IO.File.ReadAllLines(@"C:\Users\OEM\Desktop\stackoverflow\test.txt");

        /*  this works just fine unless you have alot of labels, the code not commented out below this works better
        label1.Text = familyout[0];
        label2.Text = familyout[1];
        label3.Text = familyout[2];
        */

        int i = 0;

        foreach (Control lbl in this.Controls)
        {
            if (lbl is Label)
            {
                lbl.Text = familyout[i];
                i++;
            }
        }
    }