これが可能かどうかはわかりませんが、これは私が考えていたことです:
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 に対してこの方法で仮想プロパティ/メソッドをオーバーライドすることはできません。これは可能ですか?