1

HostカスタムUIエディターを備えたWinFormsユーザーコントロールがあります。そのエディタを介して、子コントロール(Child)をに追加できますHost

(UIエディターが作成Childおよび設定しますChild.Parent = Host

子は、ListViewItemなどのプロパティHolder<Child>として設定されるヘルパークラスを介して処理されます。Tag

それぞれのコード(少なくともその一部)がフォームに追加されます。ホルダーが作成され、タグとして設定されます。これは、実行時にも作成するのに十分です。

ただし、子はデザイナーには表示されません。表示されますが、選択することはできません。また、親フォームのコントロールを含むドロップダウンリストにも表示されません。

私はしたいと思います:

  • Childプロパティを変更できるように、デザイナのコントロールを参照してください
  • コントロールが削除された場合に通知を受け取ります

これは可能ですか?


[編集]ご意見ありがとうございます。デザイナーをスキップすることにしました。すぐに何かをまとめたいと思っていましたが、今のところ自分で費やすよりも多くの計画が必要なようです。

4

2 に答える 2

1

あなたがやろうとしていることを完全に理解しているとは言えません。

デザイン時にフォームに配置されたUserControlの「子」コントロールを、ツールボックスから他のコントロールをドラッグアンドドロップできるコンテナとして機能させる方法の問題に対処している場合:このCodeProject Henry Minuteによる記事が役立つかもしれません:ネストされたコントロールの設計。例:パネルが内部にあるUserControlがある:UserControlのインスタンスがフォームに配置されている:フォームのデザイン時ビューで:コントロールをUserControlのパネルにドラッグドロップできるようにするそして、それらをパネルの子コントロールにします。ヘンリーの記事では、その方法を説明します。

これはMicrosoftから:Visual C#を使用してUserControlオブジェクトをコントロールコンテナの設計時に機能させる方法

おそらく、このステップはすでに完了しているように見えますが、おそらく役立つかもしれません。

于 2010-02-24T03:09:37.997 に答える
1

this.Controls.Add(/*Instance of the child*/);ホストクラスで使用します。次に、通知の場合、ホストのControlRemovedイベントのイベントハンドラーを追加します(this.ControlRemoved += new ControlEventHandler(Host_ControlRemoved);)。

于 2010-02-24T03:15:08.867 に答える