- PR -

【C#】Microsoft.Office.Core.CommandBarComboBoxクラスについて

1
投稿者投稿内容
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 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に変更すればいきそうな
感じなのですが例外『エラーを特定できません。』が発生します。

どなたかご存知の方いらっしゃいましたら、アドバイスをお願いいたします。

以上、お忙しいとは思いますが、よろしくお願いいたします。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-01-23 18:08
こんばんは。

引用:

Makotoさんの書き込み (2006-01-23 16:19) より:

ただ上記コードでは、リストダウンとして表示されてしまいます。

※Visual Studioの検索コンボボックスのように、
 手動での入力もできるようにしたいです。



試してないですが…
MsoControlType.msoControlComboBox
じゃないですか?
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 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では、変更後イベントなので手遅れ』のような気もしています...
ご意見などありましたらよろしくお願いいたします。

以上、お忙しいとは思いますが、よろしくお願いいたします。
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2006-01-24 11:35
いつもお世話になっております。

msoControlEditの指定の件ですがよくわかりませんが、
(私の環境では、)下記のように動作することがわかりました。

●本書き込みまでの環境

 環境:VisualStudio2003にアドインを追加してデバッグしていました。
 結果:msoControlEditを指定すると、例外が発生します。

●今回の環境

 環境:パワポ2003にアドインを追加してデバッグしました。
 結果:msoControlEditを指定すると、テキストボックスの
 ようなものが追加されます。
 (例外は、発生しません。)

が、テキストボックスに文字列を入力しても、
マウス操作で他のコントロールにフォーカスを移動すると
入力文字列が””にクリアされてしまいます...
(タブキーでの移動は、入力されたままになります...)


普通は、逆ですよね...

Changeイベントでは、どうも変更前の文字列は取れない?ようです
残念ながら、何も解決していません...(泣)
1

スキルアップ/キャリアアップ(JOB@IT)