我不知道这是否可能,但这就是我的想法:
public class ValidationControl<T> where T : Control, new()
{
[Browsable(true)]
[Category("Validation")]
[DefaultValue(false)]
public bool Required { get; set; }
public ValidationControl() { Required = false; }
public virtual void RunValidation() { ... }
}
然后对于我所有的自定义控件,我可以简单地将通用控件用作可重用的基类:
public class ValidationTextBox : ValidationControl<TextBox> { }
public class ValidationComboBox : ValidationControl<ComboBox> { }
我知道我可以使用接口,但是我必须为我制作的每个新控件重新键入/复制和粘贴所需的属性等。此外,我无法以这种方式为 TextBox/ComboBox 覆盖任何虚拟属性/方法。这可能吗?