前提・実現したいこと
自分が今後使うための、カスタムコントロール群を作成しようと思っています。
(TextBoxEx,LabelEx,ComboBoxEx,…等々)
例えばフォーカス時の背景色をプロパティで設定できるようにする等(下記)
発生している問題
コントロールを継承した各々のクラスに、全く同じ記述をすることになってしまいます。
これを回避したいとき、どのように設計するのがセオリーでしょうか。
該当のソースコード
C#
1namespace CustomControls 2{ 3 public partial class TextBoxEx : TextBox 4 { 5 private Color OrignBackColor; 6 public TextBoxEx() 7 { 8 InitializeComponent(); 9 this.Enter += new System.EventHandler(this.TextBoxEx_Enter); 10 this.Leave += new System.EventHandler(this.TextBoxEx_Leave); 11 } 12 public Color FocusedBackColor { get; set; } 13 private void TextBoxEx_Enter(object sender, EventArgs e) 14 { 15 this.OrignBackColor = this.BackColor; 16 this.BackColor = this.FocusedBackColor; 17 } 18 private void TextBoxEx_Leave(object sender, EventArgs e) 19 { 20 this.BackColor = this.OrignBackColor; 21 } 22 } 23}
試したこと
基底のControlクラスをなんとか拡張できないかと思いましたが、多重継承できませんし、拡張メソッドだとやれることがヘルパークラスと大差ない(拡張プロパティが欲しい…)し…で止めました。
ヘルパークラスを作れば確かに総行数とコードの重複は減らせますが、レガシィな印象なので、最終手段としたいと思います。
補足情報(FW/ツールのバージョンなど)
.NET Framework4.0~4.5.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/13 07:43