c # подсчет кликов - PullRequest
       3

c # подсчет кликов

0 голосов
/ 01 июля 2010

У меня есть таймер, и через 30 минут я хочу посчитать клики и показать его в текстовом поле. но как? вот код таймера:

decimal sure = 10;
private void button1_Click(object sender, EventArgs e)
{
  button1.Enabled = true;
  timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
  sure--;
  label3.Text = sure.ToString();
  if (sure == 0) 
  {
    timer1.Stop();
    MessageBox.Show("Süre doldu");
  }
}

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

Если вы хотите повторно использовать buttoN1 для подсчета кликов, но не запускаете новый таймер, вы можете добавить if к коду, который вы хотите защитить.

bool hasTimerStarted = false;
int numberOfClicks = 0;
private void button1_Click(object sender, EventArgs e)
{
  if(!hasTimerStarted)
  {
      button1.Enabled = true;
      timer1.Start();
      hasTimerStarted = true;
  }
  ++numberOfClicks;
}

Когда истекает таймер, вы сбрасываете счет итаймер запущен.

private void timer1_Tick(object sender, EventArgs e)
{

    TimeSpan ts = stopWatch.Elapsed;

    // Format and display the TimeSpan value.
    string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
        ts.Hours, ts.Minutes, ts.Seconds,
        ts.Milliseconds / 10);

    label3.Text = elapsedTime;
    labelClicks.Text = "User clicked " + clicksNo.toString() + "nt times..";

    if (stopWatch.ElapsedMilliseconds >= this.minutes * 60 * 1000) 
    {
        timer1.Stop();
        MessageBox.Show("Time elapsed.");
        hasTimerStarted = false;
        numberOfClicks = 0;
    }
}
0 голосов
/ 01 июля 2010

Объявите свой clickCounter на глобальном уровне и увеличьте счетчик ++ в Mouse Click Event. Если вы сделаете это более конкретно, вы можете использовать Background Worker, чтобы отслеживать время. и используйте Application.DoEvents (), чтобы записать оставшееся в textBox Положите кнопку, 2 метки и таймер. переименовывать метки с помощью lblClickCount и lblRemainingTime

private int clickCounter = 0;
    private void button1_Click(object sender, EventArgs e)
    {
        clickCounter++;
        lblClickCount.Text = clickCounter.ToString();
    }

    decimal sure = 10;
    private void timer1_Tick(object sender, EventArgs e)
    {
        sure--;
        lblRemainingTime.Text = sure.ToString();
        Application.DoEvents();
        if (sure == 0)
        {
            timer1.Stop();
            MessageBox.Show("Süre doldu. Toplam tiklama sayisi:" + clickCounter.ToString());
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...