2012-10-29 48 views
2

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

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

我希望在设计师是这样的:

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

如果我重写其他属性,该问题不存在。

+0

为什么你会覆盖该属性,当你可以使用默认的? –

回答

0

您没有使用override创造的财产,你正在使用new,所以任何时候类被视为无论是ControlTextbox它将使用该属性的Control类的版本,不是你的,这就是......在这种环境中。

如果您确定要改变Control认为它是Cursor的方式,则需要使用override而不是新的。如果你只是想添加一个额外的属性,你应该考虑给该属性一个完全不同的名称,而不是遮蔽现有的属性。

+0

对不起,但该属性被宣布为虚拟 '公共虚拟光标光标{get;组; }(来自msdn) – kikka

+0

@kikka奇怪,我不会想到。会相应更新。 – Servy