void MultiStateCheckbox_MouseDown(object sender, MouseEventArgs e)
{
if (this.IsPointInCheckBox(e.Location))
{
if (e.Button.HasFlag(MouseButtons.Left))
this._stateIndex = (this._stateIndex + 1) % this.Characters.Length;
else if (e.Button.HasFlag(MouseButtons.Right))
{
this._stateIndex--;
if (this._stateIndex < 0)
this._stateIndex = this.Characters.Length - 1;
}
}
Invalidate();
}