C #: Есть ли способ winforms сделать кнопки MessageBox C # (YesNo) больше? - PullRequest
4 голосов
/ 07 марта 2011

Было бы неплохо иметь кнопки MessageBox большего размера, поскольку целью этого приложения является планшет.

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

Ответы [ 7 ]

7 голосов
/ 07 марта 2011

Это системная настройка. Планшетные ПК, как правило, уже настроены таким образом, чтобы их можно было легко нажимать на кнопки, чтобы они работали в любой программе, а не только в вашей. Для настройки планшета в Win7 используйте Панель управления + Дисплей, Персонализация, Цвет окна. Нажмите Расширенные настройки внешнего вида, выберите «Окно сообщения» в комбинированном элементе. Увеличьте размер шрифта. Не обманывайтесь плохим предварительным просмотром, кнопка действительно будет расти. В этом диалоговом окне есть дополнительные настройки, которые вы можете настроить, чтобы упростить управление пользовательским интерфейсом.

4 голосов
/ 07 марта 2011

Окно сообщений - это просто модальная форма. Вы можете сделать его самостоятельно и использовать ShowDialog()

2 голосов
/ 07 марта 2011

Это невозможно с MessageBox, который оборачивает собственное системное диалоговое окно.

Вам нужно создать свой собственный диалог или даже лучше посмотреть, есть ли способ настроить систему для предоставления вашего приложения (и все остальные) большие кнопки.

Недостатком собственной разработки является то, что вы теряете все функциональные возможности, которые предоставляет нативный.

2 голосов
/ 07 марта 2011

Winforms способ? Вы имеете в виду «автоматическое изменение свойств»? Если это так, то ничего такого, о чем я знаю.

Вы можете раскрутить свой собственный диалог или форму большего размера и использовать его вместо этого. Хотя это не так просто, как в одной строке MessageBox.Show (), это не очень сложно.

2 голосов
/ 07 марта 2011

Я не уверен, возможно ли это или нет, но вы можете использовать простую форму вместо диалогового окна, тогда вы можете получить дизайн именно так, как вы хотите.

1 голос
/ 10 июня 2013

Вы можете сделать 2-ю форму, затем вы можете сделать кнопки такими большими, как вы хотите

1 голос
/ 07 марта 2011

Да, в соответствии с тем, что сказал 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

        }
    }
}
...