自定义文本框 - 文本属性不能在构造函数中工作
我已经创建了自定义文本框控件,我尝试为文本框设置默认文本。所以在它的构造函数中我说Text = "My Default Text"
,这似乎不影响设计模式下的控制。自定义文本框 - 文本属性不能在构造函数中工作
这是自定义文本框代码:
using System.Windows.Forms;
namespace MyNameSpace
{
public class xTextBox : TextBox
{
public xTextBox()
{
BorderStyle = BorderStyle.None;
Text = "My Default Text";
}
}
}
然后,我丢弃在用户控件控制,没有文字:(
以下是我在属性看框: Text
property empty
的问题在这里解释:Virtual member call in a constructor
总之,以得到你想要的,你需要有一个密封类:
public sealed class xTextBox : TextBox
{
public xTextBox()
{
BorderStyle = BorderStyle.None;
Text = "My Default Text";
}
}
或密封Text属性:
public class xTextBox : TextBox
{
public xTextBox()
{
BorderStyle = BorderStyle.None;
Text = "My Default Text";
}
public sealed override string Text
{
get { return base.Text; }
set { base.Text = value; }
}
}
它仍然不起作用,我认为这是一个Visual Studio的问题,我观察到如果我关闭设计器并打开''Text''出现。 –
它的工作原理。在您更改控件中的某些内容后,您需要构建解决方案。 – Reniuz
我这样做了,没有什么改变;我关闭了VS的解决方案,重新启动并重新构建;同样,控制文本一旦丢弃就是空的。我发现问题在于“Text”属性。请阅读我对问题的评论 –
文本需要是一个函数之外的变量。
Public string Text {
get { return this;}
set{value = this;}
}
所以这样的事情。上面的代码中可能存在错误,因为我在移动设备上键入了它。在你有这样的事情之后,在任何你想要的地方设置文本值。
我不认为Visual Studio的设计模式在显示它们时调用控件构造函数。 –
Visual Studio调用构造函数,在我的情况下应用''BorderStyle''。我观察到它只有'''Text''属性失败 –
我尝试了一个按钮自定义控件''XButton'',一旦拖放VS创建控件并将''“XButton1”''设置为文本并忽略文本I放入其构造函数中。我添加了''BackColor = Color.Yellow''这工作 –