VSTOプロジェクトのExcelウィンドウがアクティブ/フォーカスされているかどうかを知る方法はありますか?VSTO:Application Focus
私はSystem.Windows.Window.IsActive
と同等のものを探しています。
VSTOプロジェクトのExcelウィンドウがアクティブ/フォーカスされているかどうかを知る方法はありますか?VSTO:Application Focus
私はSystem.Windows.Window.IsActive
と同等のものを探しています。
私もこれに不満を抱いています。あなたはVSTOアプリでダイアログを使っていますか?もしそうなら、私が行っていること(例は、Wordであるので、Excelでの違いがあるかもしれません)、次のようにOfficeアプリケーションをアクティブにするために、Windowsフォーム/ダイアログの閉鎖にイベントを追加します:
//... VSTO Startup Event
WindowsForm form = new WindowsForm();
form.FormClosed += new FormClosedEventHandler(form_FormClosed);
form.Show();
void form_FormClosed(object sender, FormClosedEventArgs e)
{
this.Application.Activate();
this.Application.ActiveWindow.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateNormal;
}
I
this.ActiveWindow.Active()
しかし、これは(アクティブウィンドウを追跡するために、グローバルなブール変数 "APPACTIVE")良い作品:この行は常に/ trueが返さある発見した
//... VSTO Startup Event
this.Application.WindowDeactivate += new Microsoft.Office.Interop.Word.ApplicationEvents4_WindowDeactivateEventHandler(Application_WindowDeactivate);
this.Application.WindowActivate += new Microsoft.Office.Interop.Word.ApplicationEvents4_WindowActivateEventHandler(Application_WindowActivate);
void Application_WindowActivate(Microsoft.Office.Interop.Word.Document Doc, Microsoft.Office.Interop.Word.Window Wn)
{
AppActive = true;
}
void Application_WindowDeactivate(Microsoft.Office.Interop.Word.Document Doc, Microsoft.Office.Interop.Word.Window Wn)
{
AppActive = false;
}
this.ActiveWindow.Activate()
ですウィンドウをアクティブにするメソッド
this.ActiveWindow.Active
は、ウィンドウの状態を示すプロパティです。
マイク、素晴らしい仕事。 ActiveWindow.Activeプロパティは常にtrueを返さなければなりません。そうでなければ、アクティブなウィンドウはそれですか? –