- - PR -
【C#】Microsoft.Office.Core.CommandBarComboBoxクラスについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-23 16:19
いつもお世話になっております、
下記のようなコードでアドインを作成したところ Officeアプリ上にコンボボックスを作成できました。 private void makeControl(CommandBar oStandardBar) { //oStandardBarは、『標準』ツールバーです。 object omissing = System.Reflection.Missing.Value ; try { Microsoft.Office.Core.CommandBarComboBox cont; cont = (CommandBarComboBox) oStandardBar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlDropdown, omissing , omissing , omissing ,true); cont.AddItem("テスト1",omissing); cont.AddItem("テスト2",omissing); } catch(Exception ex) { MessageBox.Show (ex.ToString() ); } } ただ上記コードでは、リストダウンとして表示されてしまいます。 ※Visual Studioの検索コンボボックスのように、 手動での入力もできるようにしたいです。 下記引数であるMicrosoft.Office.Core.MsoControlType.msoControlDropdownを Microsoft.Office.Core.MsoControlType.msoControlEditに変更すればいきそうな 感じなのですが例外『エラーを特定できません。』が発生します。 どなたかご存知の方いらっしゃいましたら、アドバイスをお願いいたします。 以上、お忙しいとは思いますが、よろしくお願いいたします。 | ||||
|
投稿日時: 2006-01-23 18:08
こんばんは。
試してないですが… MsoControlType.msoControlComboBox じゃないですか? | ||||
|
投稿日時: 2006-01-24 08:41
いつもお世話になっております、
>試してないですが… >MsoControlType.msoControlComboBox >じゃないですか? ありがとうございます。 msoControlComboBoxを指定するようです。 CommandBarComboBox、CommandBarControl、 CommandBarButton、CommandBarPopupの4つのコントロール があるようなんですが、下記指定以外は例外がスローされるようです。 (原因はわかりません...) 1 msoControlButton 3 msoControlDropdown 4 msoControlComboBox 10 msoControlPopup ところでmsoControlComboBoxを指定した場合ですが、 文字列入力はできるようになったのですが、 CommandBarComboBox.Changeイベントハンドラ内で入力した文字列を取得 すると””になっています。 (※CommandBarComboBoxには、Change以外にイベントがないようです。) コンボボックスって、通常そういうものなんでしたでしょうか? (Visual Studioの検索用コンボは、履歴を保持していると思うんですが、 あれってChangeイベント内で取得しているわけではないんでしょうか???) 『Changeでは、変更後イベントなので手遅れ』のような気もしています... ご意見などありましたらよろしくお願いいたします。 以上、お忙しいとは思いますが、よろしくお願いいたします。 | ||||
|
投稿日時: 2006-01-24 11:35
いつもお世話になっております。
msoControlEditの指定の件ですがよくわかりませんが、 (私の環境では、)下記のように動作することがわかりました。 ●本書き込みまでの環境 環境:VisualStudio2003にアドインを追加してデバッグしていました。 結果:msoControlEditを指定すると、例外が発生します。 ●今回の環境 環境:パワポ2003にアドインを追加してデバッグしました。 結果:msoControlEditを指定すると、テキストボックスの ようなものが追加されます。 (例外は、発生しません。) が、テキストボックスに文字列を入力しても、 マウス操作で他のコントロールにフォーカスを移動すると 入力文字列が””にクリアされてしまいます... (タブキーでの移動は、入力されたままになります...) ↑ 普通は、逆ですよね... Changeイベントでは、どうも変更前の文字列は取れない?ようです 残念ながら、何も解決していません...(泣) |
1