Как добавить счетчик к нажатию кнопки в Winform - PullRequest
3 голосов
/ 15 ноября 2011

Я хотел бы знать, как я могу добавить счетчик к событию нажатия кнопки, например, я хотел бы сделать так, чтобы при нажатии кнопки Сохранить он добавлял 1 к счетчику.Когда пользователь нажимает «Выйти», не сохраняя ничего, я хотел бы, чтобы он открыл форму «Сохранить изменения», мне понадобится счетчик, чтобы я мог что-то записать в следующем виде:

if(count ==0)
{
  frmExit search = new frmExit();
  search.ShowDialog();
}

Ответы [ 4 ]

3 голосов
/ 15 ноября 2011

Это так просто:

public class MyWindow {

   private int counter = 0;

   //Button click event
   private void mySaveButton_click(object sender, EventArgs e) {
      counter++;
   }
}

Вы можете даже использовать boolean, так как не похоже, что вам нужна информация о том, сколько раз была нажата кнопка.

1 голос
/ 15 ноября 2011

Вы имеете дело с текстом? Вы редактируете более одного раза? Потому что вы должны изменить его значение на false снова при редактировании! Если нет, то этот код будет работать просто отлично!

bool Save=false;

private void SaveButton_Click(object sender, EventArgs e)
{
  Save=true;
  ....
}

if(!Save)
{
  frmExit search = new frmExit();
  search.ShowDialog();
}
0 голосов
/ 15 ноября 2011

Вы можете написать что-то вроде

public bool SaveClicked{get; set;}

private void btnSave_Click(object sender, EventArgs e)
{
     try 
     {
         //do your stuff
     }
     catch(Exception ex)
     {

     }
     finally
     {
        SaveClicked = true;
     }
}

И при нажатии кнопки выхода вы можете написать как

if(!SaveClicked)
{
  frmExit search = new frmExit(); 
  search.ShowDialog();
  SaveClicked = false; 
}     

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

0 голосов
/ 15 ноября 2011

Добавьте члена в класс Form с именем count:

 private int count;

Увеличьте его в обработчике OnClick:

    private void ExitButtonClick(object sender, EventArgs e)
    {
       if(count == 0)
       {
          frmExit search = new frmExit();
          search.ShowDialog();
          count++;
       }
    }
...