C# winforms-在表单中写入RichTextBox而不显示表单
我有一个针对最终用户(不是我)的winforms应用程序。 对于故障排除情况,我希望有一个单独的表单,其中包含一个文本框(RichTextBox),用作在线日志,这样,如果我在最终用户站运行程序,我可以看到一切正常/出现了问题 我还希望最终用户能够在运行中期给我打电话,我可以打开在线日志,查看到目前为止发生的事情(不仅打开日志文件,查看到现在为止的所有事情,而且查看到现在为止的所有事情,并继续使用应用程序和在线日志)。 我不想让最终用户看到在线日志,我在主窗体上创建了一个按钮,按需显示在线日志 我创建了第二个用作日志的表单,但是如果我在日志表单中写入文本框而不首先显示日志表单,则它似乎不起作用(当我从主表单中的按钮使用LogForm.Show()时,日志表单文本框为空)。 我必须先用 LogForm.Show() 然后我可以隐藏日志表单(使用LogForm.hide()),下次我显示日志表单时(使用LogForm.Show()),我会在日志表单中看到所有内容 我正在寻找解决这个问题的方法,现在我正在使用 LogForm.Show(); LogForm.Hide(); 在主窗体init中,但结果是日志窗体闪烁一次,最终用户有时会对此感到困惑 很抱歉缺少代码,progrem是在独立网络(没有internet)中创建的 谢谢。它似乎不起作用-无法重现:C# winforms-在表单中写入RichTextBox而不显示表单,c#,winforms,C#,Winforms,我有一个针对最终用户(不是我)的winforms应用程序。 对于故障排除情况,我希望有一个单独的表单,其中包含一个文本框(RichTextBox),用作在线日志,这样,如果我在最终用户站运行程序,我可以看到一切正常/出现了问题 我还希望最终用户能够在运行中期给我打电话,我可以打开在线日志,查看到目前为止发生的事情(不仅打开日志文件,查看到现在为止的所有事情,而且查看到现在为止的所有事情,并继续使用应用程序和在线日志)。 我不想让最终用户看到在线日志,我在主窗体上创建了一个按钮,按需显示在线日志
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日志形式,请创建一些公共日志记录方法。在创建表单之前单击“显示”。问题已解决,非常感谢您是对的,这就是为什么我添加了一条说明问题已解决的注释。可能是我一开始把事情搞砸了。谢谢你的回答。