【问题标题】:How can I nest this streamwriter within a while loop, wanting the button to be able to write infinitely我如何在一个while循环中嵌套这个streamwriter,希望按钮能够无限写入
【发布时间】:2022-01-16 05:41:22
【问题描述】:
   private void addTimeButton_Click(object sender, EventArgs e)
        {
            using (StreamWriter sw = new StreamWriter(@"W:\out.txt"))
            {
                string[] denter code hereata = new string[4];
                data[0] = fNameBox.Text;
                data[1] = sNameBox.Text;
                data[2] = genderCheck.Text;
                data[3] = timeBox.Text;

                string myStringOutput = String.Join(",", data.Select(p => p.ToString()).ToArray());
                sw.Write(myStringOutput + "\n");
                myStringOutput += Environment.NewLine;
                sw.Close();
            }

            using (StreamReader sr = new StreamReader(@"W:\out.txt"))
            {
                while (!sr.EndOfStream)
                {
                    readTimeButton.AppendText(sr.ReadLine());
                }
            }
        }

我想将流编写器嵌套在一个while循环中,类似于阅读器的方式,由于某种原因,使用相同的方法不起作用。我基本上希望按钮能够被无限按下,直到用户决定他们想要关闭程序。

【问题讨论】:

  • 按钮可以被无限按下 - 这是什么意思?你心目中的新闻是什么?

标签: c# arrays


【解决方案1】:

首先,您不需要添加“sw.Close();”在使用流中,因为“使用”将关闭流。 为什么不将流编写器包含在这样的 while 循环中?

private void addTimeButton_Click(object sender, EventArgs e)
    {
       while(true)
       {
        using (StreamWriter sw = new StreamWriter(@"W:\out.txt"))
        {
            string[] denter code hereata = new string[4];
            data[0] = fNameBox.Text;
            data[1] = sNameBox.Text;
            data[2] = genderCheck.Text;
            data[3] = timeBox.Text;

            string myStringOutput = String.Join(",", data.Select(p => p.ToString()).ToArray());
            sw.Write(myStringOutput + "\n");
            myStringOutput += Environment.NewLine;
            // sw.Close(); // not necessary whithin a using
        }

        using (StreamReader sr = new StreamReader(@"W:\out.txt"))
        {
            while (!sr.EndOfStream)
            {
                readTimeButton.AppendText(sr.ReadLine());
                Application.DoEvents(); // to see your text increasing
            }
        }
      }
    }

AppendText 方法不属于按钮控件。

你能解释一下你要做什么吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多