带有MessageBox图标和声音的自定义WinForm



我想创建一个模式对话框,它比标准.NET MessageBox提供的控件更多。我已经创建了自己的Windows窗体,它将使用ShowDialog()进行调用,以提供模式行为。但是,我希望通过MesageBoxIcon使用MessageBox附带的图形。这可能吗?是否也可以复制播放与消息框图标相关的错误/警告窗口声音(因为它们是在用户的窗口设置中设置的)?

请参阅System.Drawing.SystemIcons类以显示MessageBox类使用的系统图标,如QuestionInformationWarning

e.Graphics.DrawImage(SystemIcons.Question.ToBitmap(), new Point(0, 0));

有关声音,请参阅System.Media.SystemSounds类以播放相关的声音。

System.Media.SystemSounds.Asterisk.Play();

MessageBox恐怕是由操作系统提供的。您可以扩展它,但它需要大量的工作(请参阅这篇CodeProject文章中的教程)。您最好的选择可能是按照您的建议,使用从Form继承的控件重新开始。

要访问图标,只需使用System.Drawing.SystemIcons类(此处有相关文档)即可。

最新更新