gpt4 book ai didi

c# - RichTextBox 文本未显示 C#

转载 作者:太空狗 更新时间:2023-10-30 01:10:32 26 4
gpt4 key购买 nike

以编程方式使用 richtextbox 控件,我将文本附加到 richtextbox。

richTextBox1.AppendText("hello");

文本以某种方式出现在 richTextBox1.Text 中,但未显示在表单中。知道可能是什么问题吗?(我检查了前景色似乎没问题)。提前致谢

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

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");
}`

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

最佳答案

当您执行 richTextBox1.Text = "hello"; 时是否会发生同样的情况?

编辑:试图解释问题

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

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

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

编辑 2

好吧,当您两次调用 InitializeComponent 时,您实际上为 Form 上的所有控件创建了两个实例。所以发生的事情是,第一个调用创建了一个 RichTextBox。然后第二次调用在完全相同的位置创建了另一个 RichTextBox,大小相同。然后将文本设置为第二个 RichTextBox

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

关于c# - RichTextBox 文本未显示 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com