次のコードでは、マウスをボタンに移動してクリックすると、結果の最終値は 1 ではなく 2 になります。
static int result = 0;
private void button2_MouseHover(object sender, EventArgs e)
{
result++;
}
private void button2_MouseDown(object sender, MouseEventArgs e)
{
button2.FlatStyle = FlatStyle.System;
}
別の設定を試しました:
MouseHoverの代わりにMouseEnterを使用すると、結果が 1になります
FlatStyle を System に変更するだけで、ボタンがクリックされた後に MouseHover がもう一度トリガーされます。ボタンの FlatStyle が元々 FlatStyle.System である場合、result = 1を返します。FlatStyle が他の Style(popup, flat) に変更された場合、result = 1を返します。
問題はFlatStyle.Systemに設定されたFlatStyleにあると思いますが、誰でもこれを説明できますか?