Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# winforms-在表单中写入RichTextBox而不显示表单_C#_Winforms - Fatal编程技术网

C# winforms-在表单中写入RichTextBox而不显示表单

C# winforms-在表单中写入RichTextBox而不显示表单,c#,winforms,C#,Winforms,我有一个针对最终用户(不是我)的winforms应用程序。 对于故障排除情况,我希望有一个单独的表单,其中包含一个文本框(RichTextBox),用作在线日志,这样,如果我在最终用户站运行程序,我可以看到一切正常/出现了问题 我还希望最终用户能够在运行中期给我打电话,我可以打开在线日志,查看到目前为止发生的事情(不仅打开日志文件,查看到现在为止的所有事情,而且查看到现在为止的所有事情,并继续使用应用程序和在线日志)。 我不想让最终用户看到在线日志,我在主窗体上创建了一个按钮,按需显示在线日志

我有一个针对最终用户(不是我)的winforms应用程序。 对于故障排除情况,我希望有一个单独的表单,其中包含一个文本框(RichTextBox),用作在线日志,这样,如果我在最终用户站运行程序,我可以看到一切正常/出现了问题

我还希望最终用户能够在运行中期给我打电话,我可以打开在线日志,查看到目前为止发生的事情(不仅打开日志文件,查看到现在为止的所有事情,而且查看到现在为止的所有事情,并继续使用应用程序和在线日志)。 我不想让最终用户看到在线日志,我在主窗体上创建了一个按钮,按需显示在线日志

我创建了第二个用作日志的表单,但是如果我在日志表单中写入文本框而不首先显示日志表单,则它似乎不起作用(当我从主表单中的按钮使用LogForm.Show()时,日志表单文本框为空)。 我必须先用 LogForm.Show() 然后我可以隐藏日志表单(使用LogForm.hide()),下次我显示日志表单时(使用LogForm.Show()),我会在日志表单中看到所有内容

我正在寻找解决这个问题的方法,现在我正在使用 LogForm.Show(); LogForm.Hide(); 在主窗体init中,但结果是日志窗体闪烁一次,最终用户有时会对此感到困惑

很抱歉缺少代码,progrem是在独立网络(没有internet)中创建的

谢谢。

它似乎不起作用-无法重现:

public partial class Form1 : Form
{
    private Form f2 = new Form();
    public Form1()
    {
        InitializeComponent();

        f2.Controls.Add(new RichTextBox() { Name = "rtb1" });
    }

    private void button1_Click(object sender, EventArgs e)
    {
        f2.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        (f2.Controls["rtb1"] as RichTextBox).AppendText(Guid.NewGuid().ToString());
    }
}
我创建了一个带有两个按钮的表单,将它们的点击事件处理程序连接起来,如图所示。这个表单有另一个表单作为类范围的变量,其中放置了一个richtextbox。其中一个按钮向rich文本框添加日志条目,另一个按钮显示日志表单(f2)

单击一个按钮(log-a-message按钮)数次,然后单击另一个按钮(show the log form按钮)会使日志表单显示,文本框中输入的所有文本都很好。单击log-a-message按钮会在日志表单中输入更多文本:


您需要刷新()写入数据。Windows使用计时器(以及临时缓冲区大小)在流之间移动数据。因此,数据的结尾可能仍然不是stream.init日志形式,请创建一些公共日志记录方法。在创建表单之前单击“显示”。问题已解决,非常感谢您是对的,这就是为什么我添加了一条说明问题已解决的注释。可能是我一开始把事情搞砸了。谢谢你的回答。