Ошибка messagebox c

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.

How can I show message boxes with a «Ding!» sound and a red ‘close’ button in it? This is what I’m talking about:

screenshot

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's user avatar

TylerH

20.5k62 gold badges75 silver badges97 bronze badges

asked Jan 21, 2010 at 13:21

claws's user avatar

Try this:

MessageBox.Show("Some text", "Some title", 
    MessageBoxButtons.OK, MessageBoxIcon.Error);

caiosm1005's user avatar

caiosm1005

1,6461 gold badge19 silver badges31 bronze badges

answered Jan 21, 2010 at 13:23

Andrew Hare's user avatar

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's user avatar

TylerH

20.5k62 gold badges75 silver badges97 bronze badges

answered Jun 30, 2015 at 12:21

Ahosan Karim Asik's user avatar

MessageBox.Show(
  "your message",
  "window title", 
  MessageBoxButtons.OK, 
  MessageBoxIcon.Asterisk //For Info Asterisk
  MessageBoxIcon.Exclamation //For triangle Warning 
)

Antonio's user avatar

Antonio

18.9k12 gold badges95 silver badges194 bronze badges

answered Jul 8, 2015 at 12:35

Onur Adıyaman's user avatar

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

Tides's user avatar

TidesTides

11111 bronze badges

Alexander1992

1 / 1 / 0

Регистрация: 14.03.2010

Сообщений: 25

1

14.03.2010, 13:36. Показов 36127. Ответов 14

Метки нет (Все метки)


Здравствуйте. у меня в visual studio c++ не хочет работать messagebox. Я прописал:

C++
1
MessageBox (NULL,L"Форма закрывается",L"Закрытие",MB_OK | MB_ICONWARNING);

компилятор выдает ошибку:

1>c:visual studio 2008projectsлаба 9лаба 9Form1.h(472) : error C2872: MessageBox: неоднозначный символ
1> может быть ‘C:Program FilesMicrosoft SDKsWindowsv6.0Aincludewinuser.h(7374) : int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)’
1> или ‘c:windowsmicrosoft.netframeworkv2.0.50727sys tem.windows.forms.dll : System::Windows::Forms::MessageBox’
1>c:visual studio 2008projectsлаба 9лаба 9Form1.h(472) : error C2872: MessageBox: неоднозначный символ
1> может быть ‘C:Program FilesMicrosoft SDKsWindowsv6.0Aincludewinuser.h(7374) : int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)’
1> или ‘c:windowsmicrosoft.netframeworkv2.0.50727sys tem.windows.forms.dll : System::Windows::Forms::MessageBox’

Скажите пжст, что делать

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



1



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

14.03.2010, 13:36

Ответы с готовыми решениями:

Не работает MessageBox!
Код и сама ошибка показаны на скриншоте. В чём проблема и как её решить?

Не работает MessageBox
При компиляции выдает такую ошибку: 1>c:documents and settingsadminмои документыvisual studio…

Не работает MessageBox
Не работает след строчка
MessageBox("Test");

Выдает ошибку
error C2664: ‘MessageBoxW’ :…

messagebox не работает
if (MessageBox(Handle,"Вы уверены?","Подтверждение",MB_YESNO) == IDYES)
{

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 ко всему вышеперечисленному добавляется еще одна ошибка:
1>c:visual studio 2008projectsлаба 9лаба 9Form1.h(471) : error C2664: MessageBox: невозможно преобразовать параметр 2 из ‘const char [18]’ в ‘LPCTSTR’
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции



0



BreatheInMyVoid

21 / 17 / 0

Регистрация: 05.03.2010

Сообщений: 59

14.03.2010, 14:36

4

Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде

C++
1
MessageBox::Show( "Форма закрывается", "Закрытие", MessageBoxButtons::OK, MessageBoxIcon::Warning );



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

Цитата
Сообщение от BreatheInMyVoid
Посмотреть сообщение

Если WinForms

Это не WinForms, а просто вызов класса MessageBox из пространства имен System.Windows.Forms, он будет работать даже в консольном приложении приподключении нужных ссылок



0



Chelioss

186 / 186 / 21

Регистрация: 08.01.2011

Сообщений: 1,139

26.03.2012, 23:20

7

Цитата
Сообщение от BreatheInMyVoid
Посмотреть сообщение

Ты используешь WinForms или WinAPI вызов? Если WinForms то будит что-то вроде

C++
1
MessageBox::Show( "Форма закрывается", "Закрытие", MessageBoxButtons::OK, MessageBoxIcon::Warning );

хочу написать так:

C++
1
MessageBox::Show( "Ошибка", const_cast< char* >( ex.what() ) , MessageBoxButtons::OK, MessageBoxIcon::Error );

ошибка такая:

error C2665: System::Windows::Forms::MessageBox::Show: ни одна из 21 перегрузок не может преобразовать все типы аргументов
1> forms.dll: может быть «System::Windows::Forms:ialogResult System::Windows::Forms::MessageBox::Show(System::S tring ^,System::String ^,System::Windows::Forms::MessageBoxButtons,System ::Windows::Forms::MessageBoxIcon)»
1> forms.dll: или «System::Windows::Forms:ialogResult System::Windows::Forms::MessageBox::Show(System::W indows::Forms::IWin32Window ^,System::String ^,System::String ^,System::Windows::Forms::MessageBoxButtons)»

И так тоже не работает( та же ошибка ):

C++
1
MessageBox::Show( "Ошибка", System::String( const_cast< char* >( ex.what() ) ) , MessageBoxButtons::OK, MessageBoxIcon::Error );

Что делать?



0



Евгений М.

1080 / 1006 / 106

Регистрация: 28.02.2010

Сообщений: 2,889

27.03.2012, 06:57

8

Цитата
Сообщение от Chelioss
Посмотреть сообщение

Что делать?

Попробуйте:

C++
1
MessageBox::Show( "Ошибка", ex.what() , MessageBoxButtons::OK, MessageBoxIcon::Error );

Или

C++
1
MessageBox::Show( System::String("Ошибка"), System::String(ex.what()) , MessageBoxButtons::OK, MessageBoxIcon::Error );



1



186 / 186 / 21

Регистрация: 08.01.2011

Сообщений: 1,139

27.03.2012, 20:08

9

Евгений М.
Не работает. Та же ошибка.
На всякий случай, не работает под windows forms(C++/CLI) в VS 2010.



0



Евгений М.

1080 / 1006 / 106

Регистрация: 28.02.2010

Сообщений: 2,889

27.03.2012, 22:11

10

C++
1
MessageBox::Show(gcnew System::String("Ошибка"), gcnew System::String(ex.what()), ..)

А вот так:



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

Цитата
Сообщение от Chelioss
Посмотреть сообщение

А так утечки памяти не будет?

Это же можно контролировать.



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

Цитата
Сообщение от Chelioss
Посмотреть сообщение

Т.е. надо удалить delete’om?

Да…



1



Chelioss

186 / 186 / 21

Регистрация: 08.01.2011

Сообщений: 1,139

29.03.2012, 21:46

15

А есть какой-то другой способ сообщить об ошибки?
Это ведь бред:

C++
1
2
3
4
5
6
7
catch( std::exception& ex ) {
                 System::String ^err_name = gcnew System::String( "Ошибка" );
                 System::String ^err_descr = gcnew System::String( ex.what() );
                 MessageBox::Show( err_descr, err_name, MessageBoxButtons::OK, MessageBoxIcon::Error );
                 delete err_name;
                 delete err_descr;
             }

Ведь 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 в Windows Forms

Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод 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

FEER

Contributed on May 13 2020

FEER

3 Answers  Avg Quality 8/10


messagebox.show c# error


Popularity

9/10 Helpfulness
8/10
Language
csharp

Distinct Dog

Contributed on Jul 14 2020

Distinct Dog

2 Answers  Avg Quality 8/10


c# error messagebox


Popularity

9/10 Helpfulness
6/10
Language
csharp

Bright Booby

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

Sleepy Skipper


Понравилась статья? Поделить с друзьями:

Читайте также:

  • Ошибка message при запуске serious sam 4
  • Ошибка mercedes 2054
  • Ошибка memory management win 10
  • Ошибка memory card error
  • Ошибка memory allocation error

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии