2011-02-04 53 views
9

如何指定MessageBox應該在任務欄中使用哪個圖標?沒有MessageBox.Show重載讓我選擇一個任務欄圖標,只有一個圖標用於實際的形式。指定MessageBox的任務欄圖標

+0

爲什麼在任務欄上顯示`MessageBox`呢?唯一可能發生的方式是,如果您沒有將其分配給父母。 – 2011-02-04 07:26:05

回答

7

我不認爲有可能更改任務欄圖標;你唯一的選擇是製作你自己的MessageBox。

3

簡答:你不能。

簡答#2:您需要爲此創建自己的表單,然後手動顯示它。

0

爲了能夠顯示一個MessageBox在任務欄的圖標,我找到了一種方法,以避免創建自定義表單,但不知何故,我們將創建一個虛擬的形式(或者你可以將它更改成匿名形式):

 using (Form dummy = new Form() { 
         Icon = Properties.Resources.ico_Main_Logo 
         , TopMost = true 
         , FormBorderStyle = System.Windows.Forms.FormBorderStyle.None 
         , Size = new System.Drawing.Size(0,0) 
         , BackColor = Color.White 
         , TransparencyKey = Color.White 
        }) 
     { 
      dummy.Show(); 
      MessageBox.Show(dummy, "This is a MessageBox with Icon at Taskbar and on top of all windows", "Title Text", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     } 

通過以上方式,這些實用的功能將有可能:在任務欄

  • 顯示圖標MessageBox。 (我使用應用程序設置來加載圖標,你可以從磁盤或...)
  • 顯示MessageBox窗口在其他窗口的頂部。 (如果你不想要它然後設置TopMost = false
  • 不要顯示MessageBox圖標在任務欄。 (就在使用的最初一個簡單的表格,並刪除dummy.Show();線)

或者只是初始匿名形式像這樣隱藏任務欄MessageBox圖標:

MessageBox.Show(new Form(), "This is a MessageBox Hide it from Taskbar", "Title Text", MessageBoxButtons.OK, MessageBoxIcon.Information); 

反正,我只是想分享我的新因此它可以幫助其他人。謝謝。

這工作得很好,但我不知道爲什麼甚至當我設置表格的Size(0, 0)它仍然有一個大小的131x37!但是因爲表單設置爲透明度,它將不可見,鼠標指針將點擊低谷。