How can I show message boxes with a «Ding!» sound and a red ‘close’ button in it? This is what I’m talking about:
I’m trying to create some custom errors and warnings, but this:
MessageBox.Show("asdf");
doesn’t seem to give me any customization options.
TylerH
20.5k62 gold badges75 silver badges97 bronze badges
asked Jan 21, 2010 at 13:21
Try this:
MessageBox.Show("Some text", "Some title",
MessageBoxButtons.OK, MessageBoxIcon.Error);
caiosm1005
1,6461 gold badge19 silver badges31 bronze badges
answered Jan 21, 2010 at 13:23
Andrew HareAndrew Hare
341k71 gold badges636 silver badges631 bronze badges
2
Try details: use any option:
MessageBox.Show(
"your message",
"window title",
MessageBoxButtons.OK,
MessageBoxIcon.Warning // for Warning
//MessageBoxIcon.Error // for Error
//MessageBoxIcon.Information // for Information
//MessageBoxIcon.Question // for Question
);
TylerH
20.5k62 gold badges75 silver badges97 bronze badges
answered Jun 30, 2015 at 12:21
MessageBox.Show(
"your message",
"window title",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk //For Info Asterisk
MessageBoxIcon.Exclamation //For triangle Warning
)
Antonio
18.9k12 gold badges95 silver badges194 bronze badges
answered Jul 8, 2015 at 12:35
You should add namespace if you are not using it:
System.Windows.Forms.MessageBox.Show("Some text", "Some title",
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Error);
Alternatively, you can add at the begining of your file:
using System.Windows.Forms
and then use (as stated in previous answers):
MessageBox.Show("Some text", "Some title",
MessageBoxButtons.OK, MessageBoxIcon.Error);
answered Jun 28, 2018 at 14:15
TidesTides
11111 bronze badges
Alexander1992 1 / 1 / 0 Регистрация: 14.03.2010 Сообщений: 25 |
||||
1 |
||||
14.03.2010, 13:36. Показов 36127. Ответов 14 Метки нет (Все метки)
Здравствуйте. у меня в visual studio c++ не хочет работать messagebox. Я прописал:
компилятор выдает ошибку: 1>c:visual studio 2008projectsлаба 9лаба 9Form1.h(472) : error C2872: MessageBox: неоднозначный символ Скажите пжст, что делать
__________________
1 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.03.2010, 13:36 |
Ответы с готовыми решениями: Не работает MessageBox! Не работает MessageBox Не работает MessageBox Выдает ошибку messagebox не работает 14 |
1260 / 798 / 108 Регистрация: 16.09.2009 Сообщений: 2,010 |
|
14.03.2010, 13:51 |
2 |
L — попробуй убрать.
0 |
1 / 1 / 0 Регистрация: 14.03.2010 Сообщений: 25 |
|
14.03.2010, 14:14 [ТС] |
3 |
без L ко всему вышеперечисленному добавляется еще одна ошибка:
0 |
BreatheInMyVoid 21 / 17 / 0 Регистрация: 05.03.2010 Сообщений: 59 |
||||
14.03.2010, 14:36 |
4 |
|||
Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде
3 |
1 / 1 / 0 Регистрация: 14.03.2010 Сообщений: 25 |
|
14.03.2010, 18:49 [ТС] |
5 |
не знаю, что такое WinForms или WinAPI вызов, но твой вариант работает))спасибо)
0 |
CEO 2258 / 1248 / 57 Регистрация: 16.03.2009 Сообщений: 3,588 |
|
14.03.2010, 20:02 |
6 |
Если WinForms Это не WinForms, а просто вызов класса MessageBox из пространства имен System.Windows.Forms, он будет работать даже в консольном приложении приподключении нужных ссылок
0 |
Chelioss 186 / 186 / 21 Регистрация: 08.01.2011 Сообщений: 1,139 |
||||||||||||
26.03.2012, 23:20 |
7 |
|||||||||||
Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде
хочу написать так:
ошибка такая: error C2665: System::Windows::Forms::MessageBox::Show: ни одна из 21 перегрузок не может преобразовать все типы аргументов И так тоже не работает( та же ошибка ):
Что делать?
0 |
Евгений М. 1080 / 1006 / 106 Регистрация: 28.02.2010 Сообщений: 2,889 |
||||||||
27.03.2012, 06:57 |
8 |
|||||||
Что делать? Попробуйте:
Или
1 |
186 / 186 / 21 Регистрация: 08.01.2011 Сообщений: 1,139 |
|
27.03.2012, 20:08 |
9 |
Евгений М.
0 |
Евгений М. 1080 / 1006 / 106 Регистрация: 28.02.2010 Сообщений: 2,889 |
||||
27.03.2012, 22:11 |
10 |
|||
А вот так:
1 |
186 / 186 / 21 Регистрация: 08.01.2011 Сообщений: 1,139 |
|
28.03.2012, 01:29 |
11 |
Работает. А так утечки памяти не будет?
0 |
1080 / 1006 / 106 Регистрация: 28.02.2010 Сообщений: 2,889 |
|
28.03.2012, 06:44 |
12 |
А так утечки памяти не будет? Это же можно контролировать.
1 |
186 / 186 / 21 Регистрация: 08.01.2011 Сообщений: 1,139 |
|
29.03.2012, 15:57 |
13 |
Это же можно контролировать. Т.е. надо удалить delete’om?
0 |
1080 / 1006 / 106 Регистрация: 28.02.2010 Сообщений: 2,889 |
|
29.03.2012, 19:49 |
14 |
Т.е. надо удалить delete’om? Да…
1 |
Chelioss 186 / 186 / 21 Регистрация: 08.01.2011 Сообщений: 1,139 |
||||
29.03.2012, 21:46 |
15 |
|||
А есть какой-то другой способ сообщить об ошибки?
Ведь gcnew может выкинуть исключение внутри catch. Добавлено через 3 минуты
Да… Я просто подумал, что тут может быть так же как и в C# работать сборщик мусора.
0 |
Последнее обновление: 31.10.2015
Как правило, для вывода сообщений применяется элемент MessageBox. Однако кроме сообственно вывода строки сообщения данный элемент может устанавливать
ряд настроек, которые определяют его поведение.
Для вывода сообщения в классе MessageBox предусмотрен метод Show, который имеет различные версии и может принимать ряд параметров.
Рассмотрим одну из наиболее используемых версий:
public static DialogResult Show( string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options )
Здесь применяются следующие параметры:
text
: текст сообщения
caption
: текст заголовка окна сообщения
buttons
: кнопки, используемые в окне сообщения.
Принимает одно из значений перечисления MessageBoxButtons:
-
AbortRetryIgnore
: три кнопки Abort (Отмена), Retry (Повтор), Ignore (Пропустить) -
OK
: одна кнопка OK -
OKCancel
: две кнопки OK и Cancel (Отмена) -
RetryCancel
: две кнопки Retry (Повтор) и Cancel (Отмена) -
YesNo
: две кнопки Yes и No -
YesNoCancel
: три кнопки Yes, No и Cancel (Отмена)
Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.
icon
: значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon:
-
Asterisk, Information
: значок, состоящий из буквы i в нижнем регистре, помещенной в кружок -
Error, Hand, Stop
: значок, состоящий из белого знака «X» на круге красного цвета. -
Exclamation, Warning
: значок, состоящий из восклицательного знака в желтом треугольнике -
Question
: значок, состоящий из вопросительного знака на периметре круга -
None
: значок у сообщения отсутствует
defaultButton
: кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton:
-
Button1
: первая кнопка из тех, которые задаются перечислением MessageBoxButtons -
Button2
: вторая кнопка -
Button3
: третья кнопка
options
: параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions:
-
DefaultDesktopOnly
: окно сообщения отображается на активном рабочем столе. -
RightAlign
: текст окна сообщения выравнивается по правому краю -
RtlReading
: все элементы окна располагаются в обратном порядке справа налево -
ServiceNotification
: окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь
Нередко используется один параметр — текст сообщения. Но посмотрим, как использовать остальные параметры. Пусть у нас есть кнопка, в обработчике
нажатия которой открывается следующее окно сообщения:
private void button1_Click(object sender, EventArgs e) { MessageBox.Show( "Выберите один из вариантов", "Сообщение", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); }
Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод MessageBox.Show
возвращает объект
DialogResult, с помощью которого мы можем узнать, какую кнопку в окне сообщения нажал пользователь. DialogResult представляет
перечисление, в котором определены следующие значения:
-
Abort
: нажата кнопка Abort -
Retry
: нажата кнопка Retry -
Ignore
: нажата кнопка Ignore -
OK
: нажата кнопка OK -
Cancel
: нажата кнопка Cancel -
None
: отсутствие результата -
Yes
: нажата кнопка Yes и No -
No
: нажата кнопка No
Используем обработку выбора пользователя, изменив обработчик нажатия кнопки следующим образом:
private void button1_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show( "Окрасить кнопку в красный цвет?", "Сообщение", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); if (result == DialogResult.Yes) button1.BackColor=Color.Red; this.TopMost = true; }
И теперь, если в окне сообщения мы выберем выриант Yes, то кнопка окрасится в красный цвет.
Technical Problem Cluster First Answered On
May 13, 2020
Popularity
10/10
Helpfulness
10/10
c# error messagebox
Popularity
10/10 Helpfulness
10/10
Language
csharp
Contributed on May 13 2020
FEER
3 Answers Avg Quality 8/10
messagebox.show c# error
Popularity
9/10 Helpfulness
8/10
Language
csharp
Contributed on Jul 14 2020
Distinct Dog
2 Answers Avg Quality 8/10
c# error messagebox
Popularity
9/10 Helpfulness
6/10
Language
csharp
Contributed on Feb 26 2022
Bright Booby
4 Answers Avg Quality 6/10
messagebox.show c# error
Popularity
7/10 Helpfulness
4/10
Language
csharp