我有这段代码
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
答案 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.Create
或FileMode.Append
。如果你想要覆盖结果,可以使用第一个,如果你想要,则使用第二个......好吧,追加。