2011-01-26 3 views
-1

У меня есть приложение Winforms, в котором есть окно сообщения. Когда пользователь нажимает кнопку «Создать отчет», возникает вопрос, который отображается в поле сообщения с Yes и No в качестве параметров.Работа с диалоговыми окнами в C#

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

Но, с другой стороны, я хочу, чтобы пользователь снова нажал кнопку генерации, чтобы сгенерировать отчет.

Как это сделать в C# и Winforms?

+1

Так что же это вопрос? Должны ли вы это делать или нет? Или как это сделать? – Brandon

+0

Скажите, если я прав: в первый раз, когда пользователь нажимает кнопку «Создать», он покажет «Да/Нет» MessageBox, результат которого отбрасывается, и отчет не создается. Во второй раз, когда пользователь нажимает кнопку «Создать» (после отклонения MessageBox), отчет создается. – adamjford

+1

Какова цель почтового ящика? Почему бы вам просто отказаться от этого? –

ответ

2

Вы можете использовать логический флаг:

private bool _isClicked = false; 

public void Button1_OnClick(object sender, EventArgs e) 
{ 
    if(!_isClicked) 
    { 
     // do show the message box here 
     _isClicked = true; 
     return; 
    } 

    //generate the report here 
    _isClicked = false; 
} 
1

Просто сохраните флаг в своем приложении - установите его в true, если вы хотите, чтобы кнопка фактически создавала отчет. Затем, когда пользователь нажимает кнопку, вы можете проверить флаг и показать MessageBox, если флаг не установлен, а затем установить флаг на основе ответа. Если флаг установлен, то сгенерируйте отчет.