किसी को भी यह देखने का तरीका पता है कि वीएसटीओ परियोजना की एक्सेल विंडो सक्रिय/फोकस में है या नहीं?वीएसटीओ: आवेदन फोकस
मैं System.Windows.Window.IsActive
के बराबर की तलाश में हूं।
किसी को भी यह देखने का तरीका पता है कि वीएसटीओ परियोजना की एक्सेल विंडो सक्रिय/फोकस में है या नहीं?वीएसटीओ: आवेदन फोकस
मैं System.Windows.Window.IsActive
के बराबर की तलाश में हूं।
मैं इसके साथ भी निराश हूं। क्या आप वीएसटीओ ऐप में एक संवाद का उपयोग कर रहे हैं?
//... 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;
}
मैं: यदि हां, तो क्या मैंने किया है के रूप में इस कार्यालय आवेदन को सक्रिय करने के लिए Windows प्रपत्र/संवाद के समापन में कोई ईवेंट जोड़ें (उदाहरण के पद के साथ है, इसलिए वहाँ Excel में अंतर हो सकता है) है पाया है इस लाइन हमेशा/सच रिटर्न निहित है:
this.ActiveWindow.Active()
लेकिन इस (सक्रिय विंडो का ट्रैक रखने के वैश्विक bool चर "AppActive") बेहतर काम करता है:
//... 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 संपत्ति हमेशा सच होनी चाहिए, अन्यथा यह सक्रिय विंडो नहीं है? –