【问题标题】:Custom WinForm with MessageBox Icon and Sound带有 MessageBox 图标和声音的自定义 WinForm
【发布时间】:2012-04-12 06:56:53
【问题描述】:

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

【问题讨论】:

    标签: winforms .net-3.5 messagebox


    【解决方案1】:

    查看System.Drawing.SystemIcons 类以显示MessageBox 类使用的系统图标,例如QuestionInformationWarning

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

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

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

    【讨论】:

    • 只是想补充一点,这是绘制系统图标的一个很好的参考:codeproject.com/script/Articles/ViewDownloads.aspx?aid=154680
    • 您需要使用 Graphics.DrawIcon() 或一些变体,因为 SystemIcons 返回的是 Icon,而不是 Image,但您基本上就在那里。
    • @StealthRabbi 哎呀。更新了代码。是的,DrawIcon 或使用ToBitmap() 函数。
    【解决方案2】:

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

    要访问这些图标,只需使用 System.Drawing.SystemIcons 类(相关文档为 here。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2019-04-04
      • 2014-04-15
      • 1970-01-01
      • 2015-01-31
      • 2015-09-07
      相关资源
      最近更新 更多