私はここで隅に追いやられました。
親から継承する一連の UserControls があります。これにはいくつかのメソッドとイベントが含まれており、単純化するため、ほぼ同一のコードを何行も記述する必要はありません。あなたのように。親には他のコントロールは含まれていません。
私がしたいのは、親 UserControl にイベント ハンドラーを 1 つだけ持つことです。これは、親コントロールだけが実行できることを行います (つまり、イベントが親で定義されているように、条件付きでイベントを呼び出します)。次に、このイベント ハンドラーを子コントロールのすべての入力ボックスに接続します。子コントロールは、入力を解析し、そのイベントをスローするかどうかを親コントロールに通知するタスクを整理します。素晴らしくきれいで、繰り返しのない、コピーアンドペーストのコード (私にとっては常にバグになります)。
これが私の質問です。Visual Studio は、私が巧妙すぎると判断し、「'CheckReadiness' メソッド [親のイベント ハンドラー] は、このクラスの派生元のクラスが既にメソッドを定義しているため、イベントのメソッドにすることはできません」と警告します。はい、Visual Studio、それがポイントです。子クラスによってスローされたイベントのみを処理するイベント ハンドラーが必要です。その唯一の仕事は、コードを 1 行も書かずに子クラスを接続できるようにすることです。これらの余分なハンドラーは必要ありません。必要なすべての機能は、子プロセスがユーザー入力を処理するときに自然に呼び出されます。
なぜ Visual Studio がこれについて不平を言い始めたのか (以前はそうさせていたので)、どうすれば解決できるのかわかりません。できれば、CheckReadiness を呼び出すだけのメソッドを定義せずに実行したいと考えています。この警告の原因、1 時間前には表示されなかったのに現在表示されている原因、およびすべての子クラスで小さなハンドラーを作成することに頼らずに、この警告を消すにはどうすればよいでしょうか?