|
分類:[.NET 全般]
VC++2010Expressにてフォーム上にマウスカーソルがあればフォームのOpacityプロパティをいじることで不透明、マウスカーソルが外れれば透明度を増すというプログラムを作成しています。
FormのMouseEnterイベントでOpacityを1 FormのMouseLeaveイベントでOpacityを0.5
にするみたいな感じです。但し、フォーム上に配置したコントロール上にマウスカーソルが移動しても、MouseLeaveイベントが起こって、Opacityが0.5となってしまい、意図した動作でなくなるため、各コントロールのMouseEnterイベントでOpacityを1とするようにしています。ところが、コンボボックスだけ、ある条件下でマウスをコンボボックス上に持って行ってもMouseEnterイベントが起こらないようで、Opacityが0.5となってしまいます。その条件とは、複数のアイテムのあるコンボボックスをフォーム状に配置しておき、コンボボックスで何かを選択動作した後、一旦フォーム上にマウスカーソルを移動し、その後コンボボックス上へマウスカーソルを持って行った時です。この際コンボボックスのMouseEnterイベントが起きず、フォームのMouseLeaveイベントは起きるために、Opacityは0.5となります。再度フォームにマウスカーソルを移動して、さらにコンボボックスへマウスカーソルを移動した場合は、コンボボックスのMouseEnterイベントは発生しているようで、Opacityは1となります。 コンボボックス選択後最初の一回限りはMouseEnterイベントが起こらないのはなぜでしょうか。
コンボボックス上にマウスカーソルが行くと、透明状態になってしまいます。
|