У меня есть коробка с картинками и форма. Я хочу посчитать клики по ним, а затем подсчитать соотношение всех кликов.
Я попробовал этот код для кликов на картинке
private void pictureBox1_Click(object sender, EventArgs e)
{
hitcounter++;
label3.Text = hitcounter.ToString();
}
Тогда я хочу посчитать клики в форме, и я попробовал этот код
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
mouseCounter++;
}
mouseCounter
, hitcounter
и accuracy
являются глобальными переменными.
Наконец, я хочу посчитать количество попаданий в картинке из всех кликов. Для этого я делаю это
public string Accuracy(int mousecounter,int hitcounter)
{
accuracy = (double)(((double)hitcounter / (double)(mouseCounter + hitcounter + 0.000000001)) * 100);
return label6.Text = "Accuracy: " + Math.Round(accuracy, 1).ToString() + "%";
}
Но странно то, что когда я помещаю метод Accuracy
в pictureBox1_Click
, когда я запускаю программу в label6
, не выводится правильное значение, потому что он игнорирует щелчки в форме и изменяет соотношение только если в первый раз попал в поле для картинок (например, если я в первый раз попал в поле для картинок, у меня точность 100%, но если в этом случае форма щелчка останется на 100%, а не на 50%. Если третий удар на изображении, выведите правильное значение).
Кроме того, если я добавлю только Form1_MouseClick
метод Accuracy
, у меня возникнет противоположная проблема.
Я пытаюсь одновременно ввести метод Accuracy
в pictureBox1_Click
и Form1_MouseClick
и выводить правильное значение при каждом нажатии !!
Может кто-нибудь изменить его или показать мне другое решение?