2016-01-23 110 views
0

我正在使用C#窗體在Windows中顯示一個吐司式的通知(現有的氣球通知是越野車,並且不足以滿足我的需要)。窗體不顯示沒有焦點

我在調用服務器查詢更改時在子線程上調用以下代碼。

Thread notificationThread = new Thread(() => 
{ 
    NotificationFrame notificationFrame = new NotificationFrame("text1", "text2"); 
    notificationFrame.Show(); 

    Application.Run(); 
}); 
notificationThread.Name = "Notification thread"; 
notificationThread.IsBackground = true; 
notificationThread.Start(); 

但是,這種形式並不總是顯示。我發現它只在Visual Studio關注時才起作用。我試圖在沒有附加調試器的情況下運行它,但這會導致該窗體無法顯示。

例如:

  1. 我運行使用調試器,並保持專注於VS2015,框架節目。
  2. 我使用調試器運行並快速切換到另一個窗口,幀不顯示。
+0

也許是因爲** notificationThread.IsBackground = TRUE; **,它在後臺運行,並沒有顯示。 – McBooley

+0

也許我錯了,但我認爲IsBackground只意味着線程會在所有其他主要線程都退出時退出。在這種情況下,我確信其他線程正在運行。 – Hele

回答

0

可能它是隱藏的,使用ShowDialouge()而不是像

Thread notificationThread = new Thread(() => 
{ 
    NotificationFrame notificationFrame = new NotificationFrame("text1", "text2"); 
    notificationFrame.Visible = true; 
    notificationFrame.ShowDialog(); 

    Application.Run(); 
}); 
+0

仍然不起作用。另外,我的窗口將'TopMost'設置爲true,所以它應該是可見的。 – Hele

+0

您可以確認它是否不顯示或隱藏? – Rahul

+0

我不確定。這是不可見的,這是肯定的。我可以執行代碼來檢查你是否有一些。 – Hele