2011-02-04 52 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!但是因为表单设置为透明度,它将不可见,鼠标指针将点击低谷。