【问题标题】:MessageBox.Show-- font change?MessageBox.Show——字体改变?
【发布时间】:2010-09-18 22:12:24
【问题描述】:

我正在使用 MessageBox 类向用户显示错误,虽然这可能不是正确的行为,但它非常方便。然而,这是一个触摸屏应用程序,所以我需要“确定”按钮比实际大得多(诅咒我的手指太大了!)。

我想如果我在对话框中增加字体大小应该没问题。有没有办法做到这一点?或者说真的,有什么办法可以增加对话框的大小?

谢谢

【问题讨论】:

  • +1 我有一个类似的问题,我希望多行文本采用固定宽度的字体,这样单词的对齐就不会混乱

标签: c# fonts messagebox


【解决方案1】:

据我所知,您不能,因为“正常”对话框使用的是您的默认系统字体设置。

自己动手可能是最好的方法。做起来很简单,而且很有趣!您可以构建标准对话框不支持的内容(没有 PInvoke 魔法),例如在屏幕中间居中等。

【讨论】:

  • 我没有尝试过,但我敢打赌,你可以通过 WinApi 侵入消息框对话框。或者甚至可以获取window class 并更改其中的内容?
【解决方案2】:

请查看我的免费使用 FlexibleMessageBox,它可以代替 MessageBox 并具有(静态)字体属性。

问候, 约尔格

【讨论】:

    【解决方案3】:

    使用带有一个文本框和两个按钮的表单确定,取消就可以了。在整个项目中使用此表单而不是 MessageBox。您可以即时更改文本框的字体、背景颜色、多行等。您也可以更改按钮的大小、颜色和字体。

    【讨论】:

      【解决方案4】:

      我会为此创建自己的 MessageBox 类 - 也许是 BigMessageBox? 然后将 MessageBox.Show 替换为 BigMessageBox.Show。

      另一种选择是使用 Windows 挂钩来修改表单 - 查看 https://web.archive.org/web/20091208060754/http://msdn.microsoft.com/en-gb/magazine/cc188920.aspx 以获取 .net 1.0 中的示例。在当前版本中这可能更容易,但我找不到适合您的示例。

      【讨论】:

        【解决方案5】:

        有一个解决方案——通过安装 CBT 挂钩,可以即时调整各种 MessageBox 视觉设置:消息和按钮字体、对话框背景、对话框定位、图标、按钮标题、超时等。

        扩展 MessageBox .NET 程序集 http://www.news2news.com/vfp/?solution=5

        【讨论】:

        • 看起来不错——但自从写了这个问题后,我已经自己动手了。
        • 此链接现已失效
        猜你喜欢
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-23
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多