Как мне создать MessageBox в C #? - PullRequest
15 голосов
/ 08 сентября 2008

Я только что установил C # в первый раз, и на первый взгляд он очень похож на VB6. Я решил начать с попытки «Привет, мир!» UI Edition.

Я запустил конструктор форм и создал кнопку с названием «Click Me!» дважды щелкнул по нему и набрал

MessageBox("Hello, World!");

Я получил следующую ошибку:

MessageBox является «типом», но используется как «переменная»

Достаточно справедливо, похоже в C # MessageBox - это Объект. Я попробовал следующее

MessageBox a = new MessageBox("Hello, World!");

Я получил следующую ошибку: MessageBox не содержит конструктор, который принимает аргументы '1'

Теперь я в тупике. Пожалуйста, помогите.

Ответы [ 8 ]

42 голосов
/ 08 сентября 2008

MessageBox.Show также возвращает DialogResult, который, если вы поместите туда несколько кнопок, означает, что он может вернуть то, на что нажал пользователь. Большую часть времени я пишу что-то вроде

if (MessageBox.Show("Do you want to continue?", "Question", MessageBoxButtons.YesNo) == MessageBoxResult.Yes) {
     //some interesting behaviour here
}

что, я думаю, немного громоздко, но оно выполняет свою работу.

См. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.dialogresult для дополнительных опций перечисления, которые вы можете использовать здесь.

20 голосов
/ 08 сентября 2008

Сводка кода:

using System.Windows.Forms;

...

MessageBox.Show( "hello world" );

Также ( согласно этому другому сообщению стека ): В Visual Studio разверните проект в Дереве решений, щелкните правой кнопкой мыши Ссылки, Добавить ссылку, Выберите System.Windows.Forms на вкладке Framework. Это заставит MessageBox работать вместе с использованием ссылки System.Windows.Forms сверху.

9 голосов
/ 08 сентября 2008

Это статическая функция в классе MessageBox, простой способ сделать это - использовать

MessageBox.Show("my message");

в классе System.Windows.Forms. Вы можете найти больше на странице MSDN для этого здесь . Среди прочего вы можете управлять текстом окна сообщения, заголовком, кнопкой по умолчанию и значками. Так как вы не указали, если вы пытаетесь сделать это на веб-странице, вы должны посмотреть на запуск предупреждения JavaScript («мое сообщение»); или подтвердите («мой вопрос»); функции.

6 голосов
/ 21 февраля 2014

Попробуйте код ниже:

MessageBox.Show("Test Information Message", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information);
1 голос
/ 28 апреля 2018

Также вы можете использовать MessageBox с параметрами OKCancel, но для этого требуется много кодов. Блок if предназначен для OK, блок else предназначен для Cancel. Вот код:

if (MessageBox.Show("Are you sure you want to do this?", "Question", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
    MessageBox.Show("You pressed OK!");
}
else
{
    MessageBox.Show("You pressed Cancel!");
}

Вы также можете использовать MessageBox с YesNo параметрами:

if (MessageBox.Show("Are you sure want to doing this?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
    MessageBox.Show("You are pressed Yes!");
}
else
{
    MessageBox.Show("You are pressed No!");
}
0 голосов
/ 09 марта 2015

Я получил ту же ошибку 'System.Windows.Forms.MessageBox' является 'типом', но используется как 'переменная' , даже если используется:

MessageBox.Show("Hello, World!");

Полагаю, мои первоначальные попытки с неверным синтаксисом вызвали какую-то ошибку, и я в итоге исправил ее, добавив пробел между "MessageBox.Show" и скобками ():

MessageBox.Show ("Hello, World!");

Теперь использование исходного синтаксиса без лишних пробелов снова работает:

MessageBox.Show("Hello, World!");
0 голосов
/ 23 сентября 2013

Это некоторые вещи, которые вы можете поместить в окно сообщения. Наслаждайтесь
MessageBox.Show("Enter the text for the message box",<br /> "Enter the name of the message box",<br /> (Enter the button names e.g. MessageBoxButtons.YesNo),<br /> (Enter the icon e.g. MessageBoxIcon.Question),<br /> (Enter the default button e.g. MessageBoxDefaultButton.Button1)
Больше информации можно найти здесь

0 голосов
/ 31 мая 2012

В классе System.Windows.Forms вы можете найти больше на странице MSDN для этого здесь. Среди прочего вы можете управлять текстом окна сообщения, заголовком, кнопкой по умолчанию и значками. Поскольку вы не указали, если вы пытаетесь сделать это на веб-странице, вы должны посмотреть на запуск функций javascript alert("my message"); или confirm("my question");.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...