2016-08-19 5 views
0

愚かな質問、あまりにも主観的なもの、「それは依存する」かもしれませんが...デザイン時にコントロールを追加する際の環境設定やベストプラクティスはありますかまたはランタイム?移植性の面では、モデルをビューから切り離して、このようなことは関係がありますか?ベストプラクティス:デザインタイムまたはランタイムでコントロールを追加する

たとえば、FolderBrowserDialogを使用する必要があります。フォームにデザインモードで追加するか、実行時に宣言する方がよいでしょうか?

編集:ご返信いただきありがとうございます。この特定のケースでは、ユーザーがフォルダを選択するためのボタンを作成しました。私の考えはFolderBrowserDialogを使うことです。 FoleBrowserDialogを 'button clik'イベントの中に宣言するか、フォームに埋め込んだデザイン時にそれを作成する必要がありますか?私にとっては、すべてのフォームでプロパティに簡単にアクセスできるので、設計時に作成するのは簡単ですが、イベント関数内で宣言する方が正しいと思います。パスを文字列に集め、コントロールを配置し、値を返します。どうして? FileBrowserDialogを使用するには、 'button click'イベントハンドラの '実装の詳細'があります。これは、フォームの残りの部分とは関係ありません。デカップリング:

+1

残念ながら、これは広すぎます。答えは「確かに依存している」ことです。あなたは達成しようとしているものの狭い例を持っていますか? –

+2

デザイナはツールです。あなたの仕事を助けるときはいつでも、必要に応じてそれを使用してください。しかし、実行時にコントロールやコンポーネントを作成する場合は、*デザイナを使用すると自動的に行われる*必要がなくなったら削除することを忘れないでください*。 – Luaan

+2

Designerは、デザイナで実行するアクションに基づいて '.net'コードを生成するツールです。 'YourForm.Designer.cs'ファイルを開き、デザイナーが生成したコードと、あなたの「実行時」に使用するコードを比較してください。あなたは違いがあり、どのアプローチがあなたのために最も好都合なのかを自分で決めることができます – Fabio

答えて

1

デザイナを使用する場合と、コントロール変数を定義する場合とでは、デザイナーが&をフォームにドラッグした後に同等のC#コードを提供するため、一般的に違いはありません。この自動生成されたコードは、* .Designer.csという接頭辞を持つファイルで確認でき、自動生成コードを編集して変更することができます。

特定の場合には、コード。例えば

  1. 時には数え、配置およびコントロールの設定は、実行時に動的に変更することができます。たとえば、アプリケーションの横に設定ファイルがあり、この設定ファイルのいくつかの変更可能なパラメータによって、GUIの一部のコントロールの数とプロパティが決まります。
  2. コントロールの定義範囲を、名前空間全体またはフォームクラス全体ではなく、単一の関数に制限することをお勧めします。
+0

ありがとう! UI以外のコントロールの範囲は覚えておくことが重要です!私はこの点を反映するために私の質問を編集します:) – Kaikus

1

デザイナを使用しても問題ありません。あなたが与えたFolderBrowserの例では、私は異なるプロジェクトで両方を行った。 Luaanには手作業で作成されたコントロールを廃棄することについての良い点があります。

1

実際には「依存」しています。

通常、どのような形式のUIデザイナーツール(私の視点であり、それは完全に主観的です)を使用するのは嫌です。

フォーム内のすべてのコントロールがクラスレベルフィールドとして定義されていると、初期化後に物事を変更しないラベルなど、デザイナーを使用するとどうなるでしょうか。その代わりに、実行時にラベルを作成した場合は、UIデザイナーでそのラベルを表示することはできません。

しかし、私が新しい、不足している時間の短いアプリケーションを開発しているときに、私はデザイナーの恩恵を受けることを躊躇しません。 (ドロップコントロールをドラッグしてマウスのクリックだけでサイズを変更できれば本当に速いです)

私は、デザイナーによるコントロールの割り当てと実行時のコントロールの間に何が起こっているのかを知っていなければならないと思います自分で。その後、この質問は単純な「購入するモニター」に変わり、必要に応じてツール/方法を自由に使用できます。

関連する問題