C#中的KeyDown事件只存储我按下的最后一个字符

时间:2015-07-23 07:03:04

标签: c# wpf

我必须做的事情就是从键盘写出来的东西,它将存储在我创建的文本文件中。但它只会存储文本文件中按下的最后一个键,如果将所有内容存储到文件中,我应该怎么做。

private void Window_KeyDown_1(object sender, KeyEventArgs e)
{
    string path = @"E:\PERSONAL\demo.txt";
    if (!File.Exists(path))
    {
        File.Create(path).Dispose();
        using (StreamWriter sw = new StreamWriter(path))
        {
            sw.WriteAsync(e.Key.ToString());
            sw.Close();
        }

    }
    else if (File.Exists(path))
    {
        using (StreamWriter sw = new StreamWriter(path))
        {
            sw.WriteAsync(e.Key.ToString());
            sw.Close();
        }
    }
    e.Handled = true;

}

1 个答案:

答案 0 :(得分:1)

您需要使用将附加到文件

StreamWriter构造函数
using (StreamWriter sw = new StreamWriter(path, true))

来自constructor you are using

的文档
  

如果文件存在,则会被覆盖;否则,将创建一个新文件。

所以你每次捕获按键时都会发现 - 目前它会覆盖文件