日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。カスタムコントロールメモさて、ボタンを押したら挨拶してくれる機能を簡単に作れる素敵なコントロールも大きな分岐点っぽいです。挨拶するだけじゃぁつまらない。ことで、挨拶をいっぱい登録できて10種類の挨拶を登録したら10回ダイアログに挨拶を表示させるようにしてみようと思う。メッセージ」という内容の挨拶と、「メッセージ」だけの挨拶の二種類にしてみようと思う。改造ポイント挨拶をいっぱい登録できるようにする挨拶の種類を2パターン用意するう〜ん。改造じゃなくて1から作り直そう。プロジェクト作成Greetという名前でWindowsアプリケーションを作成します。ユーザコントロールの作成プロジェクトに、GreetControlという名前でユーザコントロールを作成します。データを用意ということで挨拶を抽象化。IGreetインターフェイスを用意します。}}要は、何か文字列返せればOK。Greet.csに引き続きクラスを3つ定義します。}ユーザコントロールの実装とりあえずプロパティエディタのご機嫌は後でとるとして機能を実装してみます。いっても解説いらないくらい簡単。}}画面にはボタンが1つ置かれているのであしからず。TypeConverterの作成さて、ポイントその1.さっき作ったIGreetの2つの実装クラスにTypeConverterを作ってあげる。何に変換するのかというと、InstanceDescriptorクラス。これをもとにデザイナがコードを吐いてくれるみたい。InstanceDescriptorにはコントラクタと引数を渡してあげる。実装は下のような感じ。}NormalGreetとPersonGreetにTypeConverterを設定してあげる。}コレクションエディタ作成さて、コレクション型のプロパティにはデフォでコレクション用のエディタが設定されるのでプロパティエディタでそれっぽいダイアログを出すことが出来る。デフォだとコレクションの扱う型(この場合IGreet)のみしか扱えない。今回はインターフェイスなので追加ボタンを押すとエラーになる。いうときはCollectionEditorを拡張してやる。ちなみに、CollectionEditorはSystem.Design.dllに入ってるので参照を追加しよう。}これやらないとシリアライズしてくれない。タイムアップなので詳しいことはまた後で追記することに。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。