2010-01-03 24 views
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的是assgined到计时器滴答在如下因素

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 

哪些是完美的但什么是(文本:时间[System.Windows.Forms.Timer] ,间隔:100) 我不希望在TXT出现

thanx提前

+1

它看起来很像您将从timer1.ToString获得的输出。你确定在某个地方没有这样的错误吗? –

+2

'StreamWriter'不是写额外的东西。你正在发送你不想写的东西。我正在编辑你的标题以反映这一点。 – jason

+0

@Jason:其实你都错了。 ;)问题不在于发送额外的东西,问题是额外的东西*已经在文件*中。 – Aaronaught

回答

1

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

我建议使用FileMode.CreateFileMode.Append。如果要覆盖结果,请使用第一个,如果要...则使用第二个,然后追加。

+0

感谢它的工作 – Tony

2

你可能有下面这行代码中的其他地方:

label1.Text = timer1.ToString(); 

你应该写在代码中单击label1,然后单击查找所有引用以查看您还在使用它。


顺便说一句,而不是创建一个流,你应该使用File.WriteAllText,像这样:

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

Im当然,我没有(label1.Text = timer1.ToString();) – Tony

+0

@Tony:你真的,真的,真的吗?刚刚运行您的代码,它的工作原理。 –

相关问题