我正在尝试创建一个自定义命令按钮,将宽度和高度默认为特定设置。我有以下代码:
public partial class myCommandButton : Button
{
public magCommandButton()
{
InitializeComponent();
}
[DefaultValue(840)]
public override int Width
{
get
{
return base.Width;
}
set
{
base.Width = value;
}
}
[DefaultValue(340)]
public override int Height
{
get
{
return base.Height;
}
set
{
base.Height = value;
}
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
}
但是,它不会编译,因为它告诉我不能覆盖宽度或高度。任何人都可以告诉我我是否错误地处理了这个问题,或者是否有办法解决这个问题?
最佳答案
Width 和 Height 不是虚拟成员(检查 Reflector 中的 Control 类),因此最简单的方法是覆盖 DefaultSize 属性:
protected override Size DefaultSize
{
get
{
return new Size(840, 340);
}
}
您还可以使用 new modifier ,但对于此示例,我建议覆盖 DefaultSize。如果您检查 Reflector 中的 Control 类,您会发现 Height 和 Width 使用了很多内部/私有(private)成员。所以我不认为实现所有这些事情是个好主意。 只需使用 DefaultSize 属性。
关于c# - 自定义控件覆盖命令按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708243/