简体   繁体   中英

Counting Clicks C#

Made a simple app which using a timer, counts the number of mouse clicks on a panel for a given duration... simple enough, all working, except it seems to fail to count quickly enough to register all the mouse clicks?

I am literally incrementing a private int value on the click event of the panel, and showing a message box with the results on tick. Any Ideas? Code below...

Matt.

    public partial class Form1 : Form
    {
    int click = 0;

    public Form1()
    {
        InitializeComponent();
    }

    private void panel1_Click(object sender, EventArgs e)
    {
            click++;      
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {

    }

    private void btnReset_Click(object sender, EventArgs e)
    {
        timer1.Stop();
        txtClicks.Text = "";
        txtTime.Text = "";
        click = 0;

    }

    private void btnGo_Click(object sender, EventArgs e)
    {
        click = 0;
        timer1.Interval = int.Parse(txtTime.Text) * 1000;  
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        timer1.Stop();
        MessageBox.Show(txtClicks.Text + " seconds up, No of clicks:" + click.ToString());
    }
}

Use the MouseDown Event. That'll handle every time and negate the need to handle both Click and DoubleClick .

except it seems to fail to count quickly enough to register all the mouse clicks?

may be you should handle Mouse DoubleClick event as well as Mouse Click?

I would put money on it that some of the clicks are coming through so fast that...... they count as a double click.

If you add a double click handler, and increment the counter twice while in that handler, does it produce a more accurate result?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM