none
WindowsFormControlの動的使用方法を教えてください RRS feed

  • 質問

  • WindwsFormApplication実行中に、自作の任意のWindowsFormContrlのDLLを参照し、
    そのWindowsFormControlを画面上に貼り付けて動作させる方法を教えてください。

    開発中にWindowsFormApplication側のFormに貼り付けることは簡単でしたが、
    実行中に、任意のWindowsFormControlを貼り付ける方法がどうしても探し出せません。

    実際に何がやりたいのかというと、WindowsFormApplication用の部品としてWindowsFormContorlを色々と作成していき、
    実行時に、必要な部品を選択し画面上に貼り付け、それを保存、再読み出しする、というものを考えています。

    ざっとした内容ですが、よろしくお願いします。
    2009年9月17日 0:14

回答

  • 基本的な流れは以下のとおりです。
    1.コントロールのインスタンスを作成する。
    2.作成したコントロールのプロパティを設定する。
    3.フォームに配置する。

    ↓詳しくはこちら。
    DOBON.NET へようこそ!(トップページ)
    http://dobon.net/
    コントロールを実行時に作成する
    http://dobon.net/vb/dotnet/control/addcontrol.html

    なお、保存、読み出しはけっこう難しいかとおもいますので頑張ってください。

    2009年9月17日 0:39
  • アセンブリをプラグインしたいという要求のありそうに思えるので、こちらの 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年9月17日 1:34
  • 要は、Visual Studio のようなフォームデザイナを実現したいということだと思います。

    自分も将来的にダイアログエディタのようなものを作りたいので知りたいですね。

    コントロールの追加に関しては、
    ドラッグされる対象のフォームやコントロールで drang 関連のイベントとマウス関連のイベントをうまく使うことで
    ドラッグされたオブジェクトのタイプとドラッグされた位置を知ることはできるのではないかなと思うので、
    その情報を元にコントロールをインスタンス化してフォームに追加することになるかと思います。

    コントロールの位置の変更やサイズ変更に関してもマウス関連のイベントを使えば可能だと思いますが
    バウンディングボックスを表示してドラッグ可能にしたり
    サイズを変更したりできるようにするにはどうすればいいのかな…。

    まだまだ初心者なのでわからないことだらけです…。



    2009年9月17日 1:51

すべての返信

  • 基本的な流れは以下のとおりです。
    1.コントロールのインスタンスを作成する。
    2.作成したコントロールのプロパティを設定する。
    3.フォームに配置する。

    ↓詳しくはこちら。
    DOBON.NET へようこそ!(トップページ)
    http://dobon.net/
    コントロールを実行時に作成する
    http://dobon.net/vb/dotnet/control/addcontrol.html

    なお、保存、読み出しはけっこう難しいかとおもいますので頑張ってください。

    2009年9月17日 0:39
  • アセンブリをプラグインしたいという要求のありそうに思えるので、こちらの 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年9月17日 1:34
  • 要は、Visual Studio のようなフォームデザイナを実現したいということだと思います。

    自分も将来的にダイアログエディタのようなものを作りたいので知りたいですね。

    コントロールの追加に関しては、
    ドラッグされる対象のフォームやコントロールで drang 関連のイベントとマウス関連のイベントをうまく使うことで
    ドラッグされたオブジェクトのタイプとドラッグされた位置を知ることはできるのではないかなと思うので、
    その情報を元にコントロールをインスタンス化してフォームに追加することになるかと思います。

    コントロールの位置の変更やサイズ変更に関してもマウス関連のイベントを使えば可能だと思いますが
    バウンディングボックスを表示してドラッグ可能にしたり
    サイズを変更したりできるようにするにはどうすればいいのかな…。

    まだまだ初心者なのでわからないことだらけです…。



    2009年9月17日 1:51
  • こんにちは、フォーラムオペレーターの高橋春樹です。

    あんにんごさん、totojoさん、SweetSmileさん
    ご投稿ありがとうございます。

    かばさん、初めまして。
    MSDNフォーラムのご利用有難うございます。
    あんにんごさん、totojoさん、SweetSmileさんからアドバイスを頂いたと思うのですが、その後如何でしょうか?
    今回、皆様からの投稿が、有用な情報と思いましたので、勝手ながら、回答マークを付けさせて頂きました。
    まだ解決していない場合、詳しい状況を伝えて頂ければと思います。

    今後とも、MSDNフォーラムを宜しくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年10月1日 8:27