こんにちは。Milkです。
今回は、Windowsの画面の話。
WindowsFormsで用意されている、沢山のコンポーネント(部品)がありますよね。
でも、幾つかの画面では同じUIだし、ぽちぽちコンポーネントを置き直すのは面倒くさい。
しかも、処理も一緒だし・・・
そんな時は、「ユーザーコントロール」を使いましょう。
簡単に言ってしまえば、コンポーネントを組み立てて、大きな一つのコンポーネントとして扱ってしまおう!ということです。
ユーザーコントロール
では、ユーザーコントロールの作り方から見ていきましょう。
先ずは普通通りにコンポーネントを置いてみます。
ここまではいつも通りです。
では、右側の空いた部分に、「ユーザーコントロール」を設置してみようと思います。
ユーザーコントロールの追加
プロジェクトに対して、「追加」を行います。
選択するのは、「ユーザーコントロール」です。
すると、ソリューションファイルの一覧に「UserControl1」が出来ているのが分かります。
また、小さい四角が出てきます。
これを広げて、好きなコンポーネントを置いていくのです。
さぁ。これで終わり!
ユーザーコントロールを利用する
では、もとの最初の画面に、今作成した「ユーザーコントロール」を追加してみましょう。
分かりますか? 左に「コンポーネント」の扱いで表示されているのが。
そうです。既に「ボタン」と同じような「コンポーネント」として扱える状態になっているのです!
後は、これを選択して、貼り付けるだけです!
処理の実装
さて、各コンポーネントに対して処理の実装を行いたいわけですが、少しここは注意が必要です。
左に直接置いた「ボタン」の処理を書く場所はどこになるか?と言うと。
そう。「Form1.cs」なので、画面のコードに直接書くことになります。
では、ユーザーコントロールのボタンの処理は?
これは共通化したコンポーネントとして扱うので、「UserControl1.cs」のユーザーコントロールのコードに書くことになります。
誤って、画面(Form)の方でユーザーコントロールをダブルクリックすると、ユーザーコントロールの「Loadイベント」のコードが生成されます。
そこは勘違いしないようにしましょうね!
最後に
画面のある特定の部分を共通化するには、とっても嬉しい機能ですね。
これを使ってトリッキーなこともできますけど・・・
あまり込み入ったことすると、バグの温床になるというか・・・
ソース解析が面倒くさいことになるというか・・・
つまり、
やってらんねー!!ってなります。
なので、ギークな方向に走るのも程々にね。
メンテンナンスめっちゃ大変だから!!マジで!!
それでは、今回はこの辺で。
adios!!