指定MessageBox的任务栏图标

时间:2011-02-04 07:16:14

标签: .net winforms

如何指定MessageBox应在任务栏中使用哪个图标?没有MessageBox.Show重载让我选择任务栏图标,只有一个图标可以在实际表单中使用。

3 个答案:

答案 0 :(得分:7)

我认为不可能更改任务栏图标;你唯一的选择就是制作自己的MessageBox。

答案 1 :(得分:3)

简短的回答:你不能。

简短回答#2:您需要为此制作自己的表格,并手动显示。

答案 2 :(得分:1)

为了能够在任务栏显示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);

无论如何,我只是想分享我的新成就,所以它也可以帮助别人。谢谢。

这很好, 但是我不知道为什么 即使我将Form Size设置为(0, 0)它的大小仍然是131x37!但由于表单设置为透明度,它将不可见,鼠标指针将点击低谷。