現在、私のウィンドウのフォームの1つでMSChartsを使用しています。 MSChartsに関する奇妙なことの1つは、チャートにフォーカスがない限り、MouseWheel
イベントをチャートでトリガーできないことです。これに対処するには、MouseEnter
イベントをチャートに追加してからFocus()
のMouseWheel
イベントを発生させるチャートを追加する必要があります(Enabling mouse wheel zooming in a Microsoft Chart Control参照)。Microsoft Charting Controlsの制御フォーカス
私は完全に別のウィンドウ(Window A
と呼ぶ)をプルアップすると、ちょうど私のチャートの前に部分的に(ウィンドウはWindow B
と呼ばれます)起こるとしましょう。私が誤ってマウスを図表の上にWindow B
でも10ミリ秒間動かすと、Window B
にフォーカスが移り、Window A
が後ろに置かれ、非常にイライラします。
私はさまざまな選択肢を模索してきました。
Window B
のTopMost
プロパティをtrueに設定します。この問題は、ユーザーがウィンドウを閉じるか最小化して非表示にする必要があることです。上にウィンドウがたくさんある場合は、最初の問題と同じくらいイライラするようです。MouseEnter
イベントにFocus()
の機能を与える代わりに、MouseClick
またはMouseHover
イベントをFocus()
にします。MouseClick
の問題点は、ユーザーはいつもチャートを最初にクリックしてズームする必要がありますが、これは悪くはありませんが、迷惑になる可能性があります。MouseHover
は大丈夫ですが、イベントがホバーとみなす時間は本当に短いです。
最後に、マウスをチャート上に置き、何もしなくてもスクロールできるようにしたい(マウスクリックなど)。これに加えて、誤って私のマウスをちょうど2秒間上に動かせば、チャートを含むフォームにフォーカスを戻すことは望ましくありません。
EDIT:
それは@TaWによると、チャートは残念ながら、これはWindows 7の場合ではないウィンドウ10内MouseWheel
イベントをトリガするためにフォーカスを必要としないようです。
_私は現在、私のウィンドウのフォームの1つでMSChartsを使用しています。 MSChartsに関する奇妙なことの1つは、グラフにフォーカスがない限り、Chart内でMouseWheelイベントをトリガーできないことです._ __これを確認できません.__ Win10を使用して、MouseWheelがフォーカスまたはコントロールのどのコントロールマウスがチャート上にある限り、そうです。 __Nor__は、Chartにフォーカスを設定し、Formitを起動します。他のWindowsのバージョンについてはわかりませんが、現在のW10 64ではすべてうまくいきます! – TaW