C# RichTextBox文本不显示在C中#

C# RichTextBox文本不显示在C中#,c#,richtextbox,C#,Richtextbox,通过编程使用richtextbox控件,我将文本附加到richtextbox richTextBox1.AppendText("hello"); 文本以某种方式出现在richTextBox1.text中,但未显示在表单中。 你知道有什么问题吗? (我检查了前景色,看起来还可以)。 提前谢谢 编辑: 找到根本原因(两次错误地使用initializeComponent() 但仍然很好奇为什么这会导致这种奇怪的行为?当您执行richTextBox1.Text=“hello”时,是否也会发生同样的情况

通过编程使用richtextbox控件,我将文本附加到richtextbox

richTextBox1.AppendText("hello");
文本以某种方式出现在
richTextBox1.text
中,但未显示在表单中。 你知道有什么问题吗? (我检查了前景色,看起来还可以)。 提前谢谢

编辑: 找到根本原因(两次错误地使用initializeComponent()


但仍然很好奇为什么这会导致这种奇怪的行为?

当您执行
richTextBox1.Text=“hello”时,是否也会发生同样的情况

编辑:试图解释问题

没有看到完整的代码,我很难确定

但我的猜测是,某种原因导致了在第一次调用
InitializeComponent
时调用
OnLoad
事件处理程序,然后在第二次调用中,
RichTextBox
被替换为一个新实例,并且文本被添加到旧实例中

如果您发布仍然具有行为的最小代码(包括
InitializeComponent
的内容),我可以尝试帮助您找出原因

编辑2

嗯,当您两次调用
InitializeComponent
时,实际上您在
窗体上创建了所有控件的两个实例。因此,第一个调用创建了一个
RichTextBox
。然后,第二个调用在完全相同的位置创建了另一个大小相同的
RichTextBox
。然后将文本设置为第二个
RichTextBox


无法看到文本的原因是第一个
RichTextBox
隐藏了第二个!为了测试这一点,您可以添加一些代码,在设置文本后更改
richTextBox1
的位置,然后您将看到其中有两个…

这段代码应该可以工作。可以肯定的是,我刚刚在一个空项目上测试了它。。。你能提供更多关于你的项目的细节吗?你能不能把问题缩小到最小的代码中,然后发布代码?这可能会帮助别人帮助你。谢谢你帮我找到了根本原因。你知道为什么会这样吗?
private void InitializeComponent()
{
    this.richTextBox1 = new System.Windows.Forms.RichTextBox();
    this.SuspendLayout();
    // 
    // richTextBox1
    // 
    this.richTextBox1.Location = new System.Drawing.Point(114, 104);
    this.richTextBox1.Name = "richTextBox1";
    this.richTextBox1.Size = new System.Drawing.Size(100, 96);
    this.richTextBox1.TabIndex = 0;
    this.richTextBox1.Text = "";
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(284, 262);
    this.Controls.Add(this.richTextBox1);
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false);

}

   public Form1()
    {
            InitializeComponent();
            InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)
    {
        richTextBox1.AppendText("hello world");
    }`