如何正确地将文本框和标签转换为字符串

时间:2010-01-03 21:04:43

标签: c#-2.0

我有这段代码

FileStream fs = new FileStream("Scores.txt", FileMode.OpenOrCreate, FileAccess.Write);
        StreamWriter sw = new StreamWriter(fs);
        sw.Write("Name: " + name_box.Text + " Time " + label1.Text);
        sw.Close();

这很简单,label1被定义为Timer tick,如下所示

private void timer1_Tick(object sender, EventArgs e)
    {
        // Format and display the TimeSpan value. 
        TimeSpan ts = stopWatch.Elapsed;
        string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            ts.Hours, ts.Minutes, ts.Seconds,
            ts.Milliseconds / 10);
       label1.Text = elapsedTime;
    }

现在当我打开文本文件时,我发现了以下结果

Name: Tony Time 00:00:06.67Text:  Time [System.Windows.Forms.Timer], Interval: 100

哪个很完美但是什么(Text:Time [System.Windows.Forms.Timer],Interval:100) 我不希望它出现在txt

中 提前

thanx

2 个答案:

答案 0 :(得分:2)

您的代码中的其他位置可能还有以下行:

label1.Text = timer1.ToString();

您应该在代码中单击单词label1,然后单击查找所有引用以查看您正在使用它做什么。


顺便说一句,您应该使用File.WriteAllText,而不是创建流,而不是:

File.WriteAllText("Scores.txt", "Name: " + name_box.Text + " Time " + label1.Text);

答案 1 :(得分:1)

您在构造函数中使用FileMode.OpenOrCreate。这不会删除文件的先前内容。我怀疑如果你删除该文件,然后再尝试运行你的程序,你将看不到任何额外的东西。

我建议使用FileMode.CreateFileMode.Append。如果你想要覆盖结果,可以使用第一个,如果你想要,则使用第二个......好吧,追加。