制作一个使用计时器的简单应用程序,在给定的持续时间内计算面板上的鼠标点击次数...简单,所有工作,除了它似乎无法快速计数以注册所有鼠标点击?
我实际上是在面板的click事件上递增私有int值,并显示一个带有结果的消息框。有任何想法吗?代码如下......
太
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());
}
}
答案 0 :(得分:7)
使用MouseDown
事件。这样每次都会处理,并且无需同时处理Click
和DoubleClick
。
答案 1 :(得分:5)
除了它似乎无法快速计数以注册所有鼠标点击?
您可能应该处理鼠标DoubleClick事件以及鼠标点击吗?
答案 2 :(得分:1)
我会把钱放在上面,因为有些点击通过这么快......他们算是双击。
如果你添加一个双击处理程序,并在该处理程序中增加计数器两次,它是否会产生更准确的结果?