C#: 有没有一种WinForms的方法可以使C# MessageBox的按钮(YesNo)变大?

4

由于这个应用程序的目标是平板电脑,因此拥有更大的MessageBox按钮会更好。

DialogResult dialogResult = MessageBox.Show(
    message, caption,
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Question,
    MessageBoxDefaultButton.Button2);
switch (dialogResult)
{
    case DialogResult.Yes:
        // ...

2
你可能需要自己编写弹出控件。 - Francisco Noriega
7个回答

7

这是一个系统设置。平板电脑通常已经配置成轻松点击此类按钮,以便在任何程序中都能正常工作,而不仅仅是你的程序。要配置你的平板电脑,在Win7中,使用控制面板+显示、个性化、窗口颜色。点击高级外观设置,在项目组合框中选择“消息框”。增加字体大小。不要被糟糕的预览所迷惑,按钮实际上会变大。在此对话框中还有其他设置,你可能想要调整它们以使UI更易于操作。


1
如果这个有效,那么这可能是最好、最简单的解决方案。+1 - Pandincus
+1 这是正确的做法,正如我所说,但你实际上知道如何做!太棒了! - David Heffernan

4

消息框只是一个简单的模态表单。您可以自己制作一个并使用ShowDialog()


2

我不确定是否可能,但您可以使用简单的表单替代对话框,这样您就可以按照您的意愿精确设计。


2

“Winforms方式”指的是什么?你是指“通过属性更改自动完成”的方式吗?如果是这样,我不知道有没有这种方法。

你可以创建一个自定义对话框/窗体,使其更大并使用它。虽然这不像一行代码的MessageBox.Show()那样自动化,但也不是很困难。


2

MessageBox不能实现这个功能,因为它只是包装了系统原生对话框。

你需要自己创建对话框,或者更好的办法是看看有没有一种方法可以配置系统,让你的应用程序(以及其他所有应用程序)拥有更大的按钮。

自己创建对话框的缺点是失去了系统原生对话框提供的所有功能。


1
你可以创建第二个表单,这样你就可以将按钮做得更大。

1

是的,跟MattP说的一样,你需要创建一个自定义表单,然后使用ShowDialog()方法将第二个表单显示为模态对话框。

private void button2_Click(object sender, System.EventArgs e) {
    using (Form2 xForm = new Form2()) {
        if (xForm.ShowDialog(this) == DialogResult.OK) {
            // Take some action

        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接