2017-11-01 1 views
0

私はC#の初心者です。自動生成されたコードを別のクラスファイルに移動する簡単な方法があるのだろうか?C#を使ってコードを構造化しやすくする

たとえば、ボタンをドラッグするウィンドウのフォームを作成するとします。次に、ボタンをダブルクリックすると、メインのForm1名前空間とクラスの下でクリックイベントハンドラが自動的に生成されます。このコードを独立したファイル(おそらくclass.csファイル)に移動する方法はありますか?

「Hello World」スタイルのC#の例は、上記の方法でアイテムをフォームに追加する方法を示しています。大規模な構造化のベストプラクティスにはならないようですコードを別々のファイルに構造化することが有益です。何が必要か、開発者は標準のクリックハンドラ(メインフォームのまま)を使用していますか?それを使ってクラス/メソッドを含む外部参照ファイルを呼び出しますか?

あなたたちは、人々が大規模なC#のフォームベースのプロジェクトを構築するために使用するベストプラクティスに正しい方向に私を操縦することができる場合、私は興味があると思い

感謝

マイケル

+0

'Form'を作成すると、イベントを処理するために同じ名前のクラスが割り当てられ、そのフォームに関連するすべての偽名が処理されます。たとえば、 'Button'をダブルクリックすると、イベントは同じクラスに作成されます。なぜあなたはそれが属していない別のクラスに移動したいのですか?しかし、メインクラスをクリーンアップ(管理および整理)したい場合は、[#regions](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor)をご覧ください。 -directives/preprocessor-region) –

+0

こんにちは、ありがとうございます。私が最初の質問で言ったように、「何が必要だと思っていますか?」という答えは、私が間違った木を鳴らしていると思われます。私は組み込みのCのバックグラウンドから来ています。標準はあなたのコードを構造化することです。メインは読みやすくするために重すぎないようにしています。私はちょうどC#を手に入れようとしています....タスクと関数を実装する方法についての少しスニペットの例がたくさんありますが、まだ大きなプロジェクトの構造を修正するための良いガイドは見つかりませんでした。地域のヒントをお寄せいただき、ありがとうございました。 – Mikeyd

+0

designer.csファイル内のコードは、他のcsファイルに移動できます。私は通常、デザイナーファイルにメインコントロールを残しておき、フォーム上の位置とサイズを移動することができます。他のプロパティ設定やイベントをフォームコンストラクタやLoad()メソッドに入れます。新しいプロジェクトを作成すると、古いコードがコピーされることが多く、コードがデザイナーファイルにある場合、これらの設定は失われます。 – jdweng

答えて

1

はい、あなたはイベントハンドラを「別の」クラスに移動できます。既にForm1.csとForm1.Designer.csの2つのファイルがあります。それぞれに部分クラスが含まれています。 Form1.csのの上部には、あなたが表示されます。

public partial class Form1 : Form 

あなたは(あなたが好きと呼ばれる)新しいファイルを作成し、以下に追加することができます。

public partial class Form1 
{ 

} 

あなたは今のいずれかを移動することができますForm1のイベントハンドラをこの新しいファイルに追加します。

私たちは4つのWinformsアプリケーションの合計が約450個のコントロールを持っていると言いましたが、これは決して行っていません。デザイナを使用してイベントハンドラを作成するフォームの中で最も多く使用されているボタンは、約10です。メニュー(メニューなど)がたくさんあると、デザイナを使用しないほうがずっと優れています。コードでアイテム(およびそのイベントハンドラ)を作成します。

また、何万行ものフォームが含まれているわけではなく、独立したロジックを含む個々のコントロールを作成し、これらをフォームにまとめて結びます。

+0

Cool MineR、フォームにボタンを追加することで、自動生成されたイベントハンドラを使用して、基本的には間違っています。私はフォームデザイナーを使って、フォームデザイン(WYSIWYG)の様子を見ることができます。レイアウトを決定する方法を質問しても構わないのですか? P.S.すべてのあなたの助け人のためのタクシー - 彼らのフィールドの専門家から聞くことは良い – Mikeyd

+0

いいえ、それは間違っているわけではありません。多くの状況で手動でイベントハンドラを追加するのは完全に有効です。しかし、他の方法も使用します。フォームにボタンを配置するときは、ほとんどの場合、デザイナーを使用してこれを行います。しかし、デザイナーを使わずにイベントを購読することもできます。最良の方法は多くの要因に依存します。あなたが始めているのであれば、すべての問題について心配する必要はありません。物事を試してみて、あなたが一番好きなものを見てください。 – MineR

+0

こんにちはMineR、ありがとう、情報ありがとう。イベントハンドラのコードをどこに置くのですか...メインフォームに置かれるのでしょうか、別のcsファイルがプロジェクトに追加されて、コードがより綺麗に見えるようになりますか? – Mikeyd

関連する問題