2

我在自定义 Texbox 中覆盖 Cursor 属性时遇到问题。问题是,当我将自定义文本框添加到表单并更改 Cursur 的值时,该属性不会显示在设计器中,它没有被序列化。

public new Cursor Cursor
{
    get { return this.cursor; }
    set { this.cursor = value; }
}

我希望设计师像这样:

... 
customTextBox1.Cursor = System.Windows.Forms.Cursors.Hand;
...

如果我覆盖其他属性,问题不会持续存在。

4

1 回答 1

0

您不是override用来创建属性,而是在使用new,因此只要将类视为 aControl或 a Textbox,它将使用该Control属性的类版本,而不是您的,这...通常,在这个环境的类型。

如果你真的确定要改变 aControl对它的看法Cursor,你需要使用override,而不是 new 。如果您只想添加一个额外的属性,您应该考虑给该属性一个完全不同的名称,而不是隐藏现有的属性。

于 2012-10-29T14:26:48.130 回答