2010-07-06 99 views
4

做了一個簡單的應用程序,它使用一個計時器,計算一個給定的持續時間內的面板上的鼠標點擊數...足夠簡單,所有的工作,除了它似乎無法快速計數,足以註冊所有鼠標點擊?計數點擊C#

我真的在面板的click事件上增加了一個私有的int值,並在tick上顯示了帶有結果的消息框。有任何想法嗎?代碼如下...

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()); 
    } 
} 

回答

5

但它似乎無法足夠快地註冊的所有鼠標的點擊次數?

可能是你應該處理鼠標DoubleClick事件以及鼠標點擊?

+2

哈哈能這麼簡單嗎?!歡呼會給那一個鏡頭的隊友:) – Yoda 2010-07-06 10:25:30

+1

不錯的一個,擊中頭部的指甲 – Yoda 2010-07-06 10:37:29

7

使用MouseDown事件。每次都會處理,並且無需處理ClickDoubleClick

1

我會把錢放在上面,一些點擊速度非常快......他們算作雙擊。

如果添加一個雙擊處理程序,並且在處理程序中增加計數器兩次,它是否會產生更準確的結果?