gpt4 book ai didi

c# - 在构造函数中更改扩展的 RichTextBox 文本不起作用

转载 作者:行者123 更新时间:2023-11-30 21:30:11 27 4
gpt4 key购买 nike

我有以下类(class):

public partial class RichTextBoxEx : RichTextBox
{
public RichTextBoxEx()
{
InitializeComponent();
Text = "Some Text";
}
}

但是,当我将它放在窗体上并运行程序时,RichTextBox 是空的。问题是什么,我该如何解决?

enter image description here

我想我在这里缺少一些基本的东西,但我无法弄清楚是什么,而且我也没有设法找到任何相关信息。

最佳答案

您在控件的构造函数中设置的属性值通常会得到遵守。但是对于 Text属性(property),情况有点不同。我已经在另一个 answer 中描述过它.实际上是控件设计器设置了Text InitializeNewComponent 中控件的属性.

作为一个选项,您可以创建并注册一个新的控件设计器,覆盖 InitializeNewComponent并捕获 Text调用前的属性值 base.InitializeNewComponent方法。然后在调用基本方法后,设置 Text属性再次设置为默认值。

using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[Designer(typeof(RichTextBoxExDesigner))]
public class RichTextBoxEx : RichTextBox
{
public RichTextBoxEx ()
{
Text = "Some Text";
}
}
public class RichTextBoxExDesigner : ControlDesigner
{
public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{
var txt = Control.Text;
base.InitializeNewComponent(defaultValues);
Control.Text = txt;
}
}

注意:不要忘记添加对 System.Design 的引用组装。

旁注:不适用于 Text属性,但对于其他类似情况,当您在构造函数中设置时,您会看到属性值不受尊重,另一个嫌疑人是 CreateComponentsCoreToolboxItem的控制。对于 example对于 AutoSize Label 的属性(property).

关于c# - 在构造函数中更改扩展的 RichTextBox 文本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636332/

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