C#: есть ли способ winforms сделать кнопки C# MessageBox (YesNo) больше?


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

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

7 ответов:

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

Messagebox-это всего лишь простая модальная форма. Вы можете сделать его сами и использовать ShowDialog()

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

Путь Winforms? Вы имеете в виду," автоматически через изменение свойств"? Если и так, то мне ничего не известно.

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

Это невозможно с помощью MessageBox, которая обертывает собственный системный диалог.

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

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

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

        }
    }
}

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