The Checkbox Click event handler is fired whenever the Checked value changes (either via keyboard or mouse) but is not fired when the value is changed programatically.
Within the event handler insert the following code
if(this.checkBox.CheckState == CheckState.Indeterminate)
{
this.checkBox.Checked = false;
}
The checked state go throu Checked/Indeterminate/Unchecked, therefore whenever the state is going to indeterminate the checkbox was previously checked
Kind Regards