gpt4 book ai didi

c# - 为什么我不能从 RichTextBox 的引用创建 RichTextBox

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:21 28 4
gpt4 key购买 nike

我对 RichTextBox 控件感到困惑。

我的 WinForm 有一个 RichTextBox 控件,宽度为 100px。我想动态创建一个然后引用实例。

因此,假设在我的 Form 上我有一个名为 rtbResultRichTextBox 我会认为我可以执行以下操作:

    RichTextBox rtb = new RichTextBox();
rtb.Text = "Hello all";
rtb.Width = 50;
rtbResult = rtb;

当代码执行时,结果是我页面上的一个空 RichTextBox,原始大小为 100px(例如,宽度不是 50)。

请注意,在现场我使用文本突出显示,因此它必须是 RichTextBox,上面的示例被删除以使问题更简洁。

知道我做错了什么吗?

最佳答案

你所做的与此没有太大区别:

RichTextBox r1 = new RichTextBox();
r1.Text = "I am RTB #1";
Controls.Add(r1);

RichTextBox r2 = new RichTextBox();
r2.Text = "I am RTB #2";

现在在您的页面上您有名为 r1RichTextBox。如果你这样做:

r1 = r2;

您没有用新的 RichTextBox 替换表单中的控件,您只需将相同的引用分配给变量 r1。在您的表单中,您仍然拥有 控件,但两个变量(r1r2)指向同一个对象。

如果您不能简单地用新值更新原始 RichTextBox,您可以做的是删除旧的并在相同位置添加新的:

r2.Bounds = r1.Bounds;
Controls.Remove(r1);
Controls.Add(r2);

这很天真,很多属性可能需要从旧的复制到新的(DockTabIndex 等等),而且顺序是也很重要,因此您可能需要调用 Controls.SetChildIndex() 进行正确定位(这取决于您真正需要做什么以及您的代码如何)。

关于c# - 为什么我不能从 RichTextBox 的引用创建 RichTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201309/

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