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