If you've found this then you've probably already read this MSDN article: How to: Distinguish Between Clicks and Double-Clicks Rolling back changes is both clumsy and inefficient across an entire app, but the MouseDown example is unhelpfully complicated but it put me on the right track to building a handler. using System;using System.Windows.Forms;namespace MyApplication{ public class ClickHandler { private readonly Timer clickTimer = new Timer(); public MouseEventHandler SingleClickHandler { get; ......