よし。私はいくつかのダイアログを持つアプリを持っています。これらのダイアログには、すべて同じ方法で応答する少数のイベントがあり、すべてにプレゼンターに提供されるいくつかのメソッドがあります。これらはすべて次のようにプッシュされています。
public 抽象クラス BaseFormClass : Form
他のすべての形式は次のとおりです。
パブリック クラス DerivedFormClass : BaseFormClass
私はモデル ビュー プレゼンターのセットアップを行っているので、基本クラスにはいくつかの保護された EventHandler<EventArgs> があり、それぞれに、そのイベントに対して呼び出されるように割り当てられた同様の名前の関数があり、そのセッターが存在します。プレゼンターは、イベントのハンドラーとして使用する独自の関数を割り当てることができます。(言い換えると:)
protected void OnFormBeginClosing(object sender, FormClosingEventArgs e)
{
if (formClosing == null)
return;
formClosing(sender, e);
}
public EventHandler OnFormClose
{
set
{
formClosing = value;
}
}
protected EventHander<EventArgs> formClosing;
次に、プレゼンターは OnFormClose セッターを使用して独自のハンドラー関数を設定し、必要なクリーンアップなどを処理します。
バックストーリーが邪魔にならないので、主な質問は、親フォームを抽象としてマークするという単純な変更を行うと、子フォームのデザインビューが通常のデザインビューから混乱を吐き出すだけになるのはなぜですか? HTML (まあ、ごちゃごちゃではなく、フォームの HTML 全体のように見える 1 行です...)?
誰かが私が間違っているかもしれないことを提案できますか?