2010-06-23 101 views
0

是否可以在.Net(或通過pinvoke)來確定窗體是否被視圖遮擋(即其他窗體已被移動到頂部,因此無法看到)?我正在做的是檢查表單是否最小化,然後在任務欄上閃爍窗口(如果是)。然而,問題在於,如果它不是最小化的,但只是移動到了後臺,我還想通過在任務欄上閃爍窗口來通知用戶。我不想將窗口自動移動到前臺(即使沒有激活)。我希望他們點擊它來最大化和/或顯示錶單。想法?確定窗體是否被阻擋

下面是一些代碼:

 
        // See if we already have a conversation going with this person 
        var frm = theApp.GetConversationByUID(fromuid); 
        if (frm == null) 
        { 
         frm = theApp.NewConversation(fromuid, fromname); 
        } 
        else 
        { 
         bool withinView = frm.WindowState != FormWindowState.Minimized; 
         if (withinView) 
         { 
          // Determine if window is just obstructed 
          //TODO 
         } 

         // If the conversation window is not within view, then flash it 
         if (!withinView) 
         { 
          FlashWindow.Flash(frm); 
         } 
        } 

回答

1

嘗試this code

+0

Tergiver的代碼是正確的,早就應答了答案。固定。 – 2010-06-23 21:03:57