0

私の目標は、一般的なメニュー項目を挿入するVisualStudioのメニューストリップに既にあるSmartタグをエミュレートすることです。

ユーザーがドロップダウンから必要なアイテムを選択して(すでにUITypeEditorを使用している)、デザイン時と同じようにアイテムを作成できるようにしたいと思います(フォームのコンポーネントの一部)。作成コードは.Designer.csファイルにあります)。

私ができる最善のことは、メニューストリップコントロールにアイテムを作成させ、それらをアイテムコレクションに追加することです。問題は、設計時にアイテムをそれ以上操作できないことです。それらを含むメニューは実際には「ロック」されています。ユーザーがボタンを追加するには、実行時に動的に追加する必要があります。

私の目標は可能ですか?もしそうなら、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

私は前向きではありませんが、IComponentChangedServiceを操作して、メニューが変更されたことを通知する必要があると思います。コントロールの設計時サポートを作成してからしばらく経ちました。

デザイナーの場合:

IComponentChangeService changeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));

実際

私はあなたがこれをチェックする必要があるのはDesignHostだと思います:

IDesignerHost designHost = (IDesignerHost)GetService(typeof(IDesignerHost));
designHost.Container.Add(...)

それを管理するには、コンポーネントを追加する必要があると思います。

于 2012-10-19T18:05:02.210 に答える