我试图创建一个新的控件,TextBox
它RialiTextBox
是一种货币文本框。
问题是,当我覆盖该Text
属性,然后构建控件时,在窗体上拖动新创建的 TextBox 时,Visual Studio 崩溃。
我什至尝试了new
关键字,但又一次出现“堆栈溢出错误”。我究竟做错了什么?
这是我正在谈论的代码片段:
public override string Text
{
get
{
if (this.Text.Contains(" ريال")) {
return this.Text.Replace(" ريال", "");
}
return base.Text;
}
set
{
base.Text = value;
}
}
更新:
我遵循了建议的解决方案,其中希望我将所有内容更改this.Text
为base.Text
. 这样做解决了 Visual Studio 崩溃和“堆栈溢出错误消息”,但我也注意到我覆盖的 onEnter 事件也停止运行!
当我完全注释掉新控件的重写 Text 属性时,该事件再次起作用!这是什么原因造成的?
protected override void OnEnter(EventArgs e)
{
if (Mode == Modes.ریالی)
{
if (this.Text.Contains(" ريال"))
{
this.Text = this.Text.Replace(" ريال", "");
}
}
base.OnEnter(e);
}