私はOutlookのプログラミングに新たなんだ最初のステップ(もっと後で進ん)次の作業であるためそれほど:Outlookのインスペクタウィンドウリボンにアクセスする方法は?
- 新しいリボンを作成します(Ribbon1)タブが(探検家と新しい検査官に示すべきである)
(テストに述べたように)リボンタブは、メールの件名を表示する必要があります選択する(探検)または開口部(インスペクター)メールすると
私は様々なアプローチが、どれを試してみたが動作するようです:私はGlobals.Ribbons [インスペクタ] .Ribbon1を参照するようにNewInspectorで試してみた
が、それは常にnullである
私はNewInspectorでActivateイベントを購読しようとしましたが、Application.ActiveInspector()はnullであり、NewInspectorイベントからインスペクタのグローバルコピーを保存すると動作しません最初の新しいインスペクタ(2回目以降の読まれたメールのみ)私はリボンのLoadイベントを使用しようとしたが、それが唯一の最初の時間に発生していない
)コンメールに
私はGlobals.Ribbons.Ribbon1メンバーを使用しようとしただけのために働くことにしましたこれは私が運転している初めて
(私はNewInspectorのサンプルをたくさん見つけたが、誰もがこの1 https://stackoverflow.com/questions/7852017/outlook-2007-ribbon-object-reference-not-set-to-an-instance-of-an-object以外のリボンを変更したいように見えるんし、そのために何の答えは存在しない)
クレイジー...このような簡単な作業を行う方法は本当にありません! 'NewInspector' イベント中に参照
void InspectorsNewInspector(Outlook.Inspector inspector)
{
AddInspectorEventHandlers(inspector);
}
private void AddInspectorEventHandlers(Outlook.Inspector inspector)
{
if (inspector == null)
{
return;
}
Ribbon1 ribbon1 = Globals.Ribbons[inspector].Ribbon1; //This always return null!!!
((Outlook.InspectorEvents_10_Event)inspector).Activate += InspectorActivate;
((Outlook.InspectorEvents_10_Event)inspector).Close += InspectorClose;
_openInspectors.Add(inspector);
}
シェアだということを使用することを知っています。 AddInクラス全体は、コンテキストにとって有益です。 – SliverNinja