トップ回答者
WindowsFormControlの動的使用方法を教えてください

質問
-
WindwsFormApplication実行中に、自作の任意のWindowsFormContrlのDLLを参照し、
そのWindowsFormControlを画面上に貼り付けて動作させる方法を教えてください。
開発中にWindowsFormApplication側のFormに貼り付けることは簡単でしたが、
実行中に、任意のWindowsFormControlを貼り付ける方法がどうしても探し出せません。
実際に何がやりたいのかというと、WindowsFormApplication用の部品としてWindowsFormContorlを色々と作成していき、
実行時に、必要な部品を選択し画面上に貼り付け、それを保存、再読み出しする、というものを考えています。
ざっとした内容ですが、よろしくお願いします。
回答
-
基本的な流れは以下のとおりです。
1.コントロールのインスタンスを作成する。
2.作成したコントロールのプロパティを設定する。
3.フォームに配置する。↓詳しくはこちら。
DOBON.NET へようこそ!(トップページ)
http://dobon.net/
コントロールを実行時に作成する
http://dobon.net/vb/dotnet/control/addcontrol.htmlなお、保存、読み出しはけっこう難しいかとおもいますので頑張ってください。
- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
-
アセンブリをプラグインしたいという要求のありそうに思えるので、こちらの URL もご紹介しておきます。
方法 : リフレクションを使用してプラグイン コンポーネント アーキテクチャを実装する
http://msdn.microsoft.com/ja-jp/library/0x82tk9k.aspx
プラグインを簡単に実現するためのフレームワークも公開されています。
Managed Extensibility Framework - Home
http://www.codeplex.com/MEF
かずきのBlog - MEF
http://blogs.wankuma.com/kazuki/category/2158.aspx
ちなみにこのフレームワークは .NET Framework 4 に組み込まれるようです。- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
-
要は、Visual Studio のようなフォームデザイナを実現したいということだと思います。
自分も将来的にダイアログエディタのようなものを作りたいので知りたいですね。
コントロールの追加に関しては、
ドラッグされる対象のフォームやコントロールで drang 関連のイベントとマウス関連のイベントをうまく使うことで
ドラッグされたオブジェクトのタイプとドラッグされた位置を知ることはできるのではないかなと思うので、
その情報を元にコントロールをインスタンス化してフォームに追加することになるかと思います。
コントロールの位置の変更やサイズ変更に関してもマウス関連のイベントを使えば可能だと思いますが
バウンディングボックスを表示してドラッグ可能にしたり
サイズを変更したりできるようにするにはどうすればいいのかな…。
まだまだ初心者なのでわからないことだらけです…。- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
すべての返信
-
基本的な流れは以下のとおりです。
1.コントロールのインスタンスを作成する。
2.作成したコントロールのプロパティを設定する。
3.フォームに配置する。↓詳しくはこちら。
DOBON.NET へようこそ!(トップページ)
http://dobon.net/
コントロールを実行時に作成する
http://dobon.net/vb/dotnet/control/addcontrol.htmlなお、保存、読み出しはけっこう難しいかとおもいますので頑張ってください。
- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
-
アセンブリをプラグインしたいという要求のありそうに思えるので、こちらの URL もご紹介しておきます。
方法 : リフレクションを使用してプラグイン コンポーネント アーキテクチャを実装する
http://msdn.microsoft.com/ja-jp/library/0x82tk9k.aspx
プラグインを簡単に実現するためのフレームワークも公開されています。
Managed Extensibility Framework - Home
http://www.codeplex.com/MEF
かずきのBlog - MEF
http://blogs.wankuma.com/kazuki/category/2158.aspx
ちなみにこのフレームワークは .NET Framework 4 に組み込まれるようです。- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
-
要は、Visual Studio のようなフォームデザイナを実現したいということだと思います。
自分も将来的にダイアログエディタのようなものを作りたいので知りたいですね。
コントロールの追加に関しては、
ドラッグされる対象のフォームやコントロールで drang 関連のイベントとマウス関連のイベントをうまく使うことで
ドラッグされたオブジェクトのタイプとドラッグされた位置を知ることはできるのではないかなと思うので、
その情報を元にコントロールをインスタンス化してフォームに追加することになるかと思います。
コントロールの位置の変更やサイズ変更に関してもマウス関連のイベントを使えば可能だと思いますが
バウンディングボックスを表示してドラッグ可能にしたり
サイズを変更したりできるようにするにはどうすればいいのかな…。
まだまだ初心者なのでわからないことだらけです…。- 回答としてマーク 高橋 春樹 2009年10月1日 8:26
-
こんにちは、フォーラムオペレーターの高橋春樹です。
あんにんごさん、totojoさん、SweetSmileさん
ご投稿ありがとうございます。かばさん、初めまして。
MSDNフォーラムのご利用有難うございます。
あんにんごさん、totojoさん、SweetSmileさんからアドバイスを頂いたと思うのですが、その後如何でしょうか?
今回、皆様からの投稿が、有用な情報と思いましたので、勝手ながら、回答マークを付けさせて頂きました。
まだ解決していない場合、詳しい状況を伝えて頂ければと思います。今後とも、MSDNフォーラムを宜しくお願いします。
マイクロソフト株式会社 フォーラム オペレーター 高橋春樹