私はアプリケーションを設計するためにWinFormsを使用しています。基本的なイベントハンドラを持つ多くのコントロール(ボタン、メニューなど)を持っています。一人の人がナビゲートするには、クラスがかなり大きくなっていることがわかります。これは、各コントロールがウィンドウのコンテキスト内でイベントを処理するための1つ以上のメソッドを必要とするためです。大きいwinformクラスを分割する
これらのメソッドを編成する、またはそのような大きなクラスを分割するための技術は何ですか?
私はアプリケーションを設計するためにWinFormsを使用しています。基本的なイベントハンドラを持つ多くのコントロール(ボタン、メニューなど)を持っています。一人の人がナビゲートするには、クラスがかなり大きくなっていることがわかります。これは、各コントロールがウィンドウのコンテキスト内でイベントを処理するための1つ以上のメソッドを必要とするためです。大きいwinformクラスを分割する
これらのメソッドを編成する、またはそのような大きなクラスを分割するための技術は何ですか?
ナビゲーションに関しては、split your classを複数のファイルにまとめることができます。すべてのファイルのクラス宣言の前にpartial
を追加するだけです。
これらのコントロールに非常に複雑なコントロールまたはイベントハンドラがバインドされている場合は、カスタムコントロールの中でそれらを分離し、フォームに追加するだけで合理的です。新しいユーザーコントロール要素をプロジェクトに追加し、必要な方法でカスタマイズしてください。
あなたのすべてのコントロールは、同じプロジェクト内の他の.NETコントロールとしてすぐに利用できますが、あなたも(あなたのコードのさらに多くの分離が必要な場合は)別のDLLファイルに入れたいかもしれません。
ここにはa nice tutorialのWinFormsで独自のコントロールを設計する方法があります。
部分的なキーワードがすぐに気になった。他の手法を使って、自分のコードをコンパクト化したりグループ化したりしたいと考えていました。私のコントロールは、通常かなり簡単ですが、多くのものがあり、それぞれにはイベントハンドラがあります。 – MarkP
ロジックを意味のあるコマンドにまとめることができれば、コマンドデザインパターン(WPFでのやり方 - ICommandインターフェイスの検索と同様)を実装し、コードビハインドから必要なコンテキストとパラメータをフォームに呼び出すだけです。 –
既に#regionを使用していますか? 1つのクラスにすべての非デザイナーコードを持ち、驚きの余地はありません。 – sq33G