Как обработать MessageBox DialogResult?

Рустам Бакытов

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) 
                 {
        // объявил выше public:  System::Windows::Forms:: DialogResult^  dr;
                 dr=MessageBox::Show("fdfds","fsdfdsf",MessageBoxButtons::YesNo,MessageBoxIcon::Information);
                                     
                                              if(dr==DialogResult::Yes)
{
                   
}
                 }
// Никак не могу обработать кнопку.. Ругается на Yes.. Интернете только на си шарп.. Помогите пожалуйста
8 ответов

Рустам Бакытов

ТОТ кОД
String^ caption ="Рекомендация по исправлению ошибки ввода!"
String^ message = "Пальчики дрожат? - нажмите Да\rЖивот в клавиатуру уперся? - нажмите - Нет."
MessageBoxButtons buttons=MessageBoxButtonsButtons::YesNo;
System::Windows::Forms::DialogResult result=MessageBow::Show(this, message, caption, buttons);
if(result==::DialogResult::Yes){
MessageBox::Show("Выпейте водички.");
}
if(result==::DialogResult::No){
MessageBox::Show("Больше воды не пейте.");
}
ВЫДАЕТ ОШИБКУ[1>------ Построение начато: проект: experiment, Конфигурация: Debug Win32 ------ 1> experiment.cpp 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C3083: DialogResult: символ слева от "::" должен представлять тип 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C2039: Yes: не является членом "`global namespace'" 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C2065: Yes: необъявленный идентификатор 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C3083: DialogResult: символ слева от "::" должен представлять тип 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C2039: No: не является членом "`global namespace'" 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C2065: No: необъявленный идентификатор 1> Form2.cpp 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C3083: DialogResult: символ слева от "::" должен представлять тип 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C2039: Yes: не является членом "`global namespace'" 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(155): error C2065: Yes: необъявленный идентификатор 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C3083: DialogResult: символ слева от "::" должен представлять тип 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C2039: No: не является членом "`global namespace'" 1>c:\users\admin\documents\visual studio 2010\projects\experiment\experiment\Form1.h(158): error C2065: No: необъявленный идентификатор 1> Создание кода... ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Рустам Бакытов

Рустам Бакытов, сравнивай с System::Windows::Forms::DialogResult::Yes


Рустам Бакытов

Незнаю почему ну ругался эту строку..
MessageBoxButtons buttons=MessageBoxButtonsButtons::YesNo;
Думаю в СLI: эту строку надо подделать на:
MessageBoxButtons^buttons=gcnew MessageBoxButtons();
 buttons=MessageBoxButtonsButtons::YesNo;
Я правильно написал..? Сделал ТАК:
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
        System::Windows::Forms::DialogResult result=MessageBox::Show("fdsfds","gfdgdf",MessageBoxButtons::YesNo,
            MessageBoxIcon::Information);
        if(result==System::Windows::Forms::DialogResult::No){
        MessageBox::Show("Выпейте водички.");
        }
        if(result==System::Windows::Forms::DialogResult::Yes){
        MessageBox::Show("Больше воды не пейте.");
}
                            }
//Рабочий вариант...


Рустам Бакытов

Я правильно написал..?
Нет. Модификатор ^ не используется с enum и gcnew здесь тоже не нужен т.к. enum не ссылочный тип.
Незнаю почему ну ругался эту строку
Разницу между двумя строками замечаешь?
MessageBoxButtons MessageBoxButtonsButtons


Рустам Бакытов

System::Windows::Forms::DialogResult::Yes почему нельзя объявить public:System::Windows::Forms::DialogResult и использовать просто DialogResult::Yes;


Рустам Бакытов

Рустам Бакытов, у формы есть свойство которое называется DialogResult. Из-за этого возникает конфликт имен с enum-ом DialogResult из пространства имен System::Windows::Forms который и приходится разруливать в соответствии с правилами языка.


Рустам Бакытов

Большое СПАСИБО!!! и Буду стараться писать по тегам