我有一个扩展RichTextBox
:
public class RichTextBoxEx : RichTextBox
{
protected override void OnCreateControl()
{
Text = "Hello World";
base.OnCreateControl();
}
}
当我使用BorderStyle = BorderStyle.None;
删除边框,该方法被调用了两次:
protected override void OnCreateControl()
{
BorderStyle = BorderStyle.None;
Text = "Hello World";
base.OnCreateControl();
}
这究竟是为什么?
当设置BorderStyle
,它会检查新的边框样式与当前值不同,它recreates the handle这导致调用在方法调用结束OnCreateControl
。
如果你想改变一个在BorderStyle
控制被定为TextBoxBase
属性的默认值,正确的位置是在你的控制的构造函数:
public class RichTextBoxEx : RichTextBox
{
RichTextBoxEx ()
{
BorderStyle = BorderStyle.None;
}
}
该Text
属性是不同的。我关于它描述的answer到您的其他问题。