2009-07-14 4 views
2

ボタンの操作を変更できるアプリケーションを作成しています。Windowsフォームボタンで右クリックを使用する

ユーザーはボタンを右クリックし、ポップアップコンテキストメニューからオプションを選択する必要があります。選択がなされると、ユーザが通常のクリックを使用するとき、ボタンは異なる動作を実行する。

"MouseClick"イベントハンドラは正常に動作していませんが、通常のクリック操作では既に "クリック"イベントが発生しています。

「MouseClick」イベントは、通常の左クリックでアクティブになりますが、右クリックすると呼び出されることはありません。

右クリックを無視して実行されるデフォルトのイベント処理はありますか?

答えて

2

アクションを選択してコンテキストメニューを表示する場合は、ContextMenuStripContextMenuStripプロパティに割り当てるだけで十分です。通常、マウスイベントを手動で処理する必要はありません。

+0

別のSOの投稿が使用されている可能性があります:http://stackoverflow.com/questions/1044883/custom-user-control-in-c-right-click-menu-to-copy-text-java -developer-learnin – northpole

+1

ありがとうございました。このメソッドを使用します。私はちょうど私が見ていたはずだった "MouseUp"イベントであることを見つけました。 –

+0

@ birdlips:メモリは短いですが、一方でそれはほぼ20日前でした:o) –

4

大変申し訳ありませんが、これは重大なUIブローカーになると思います。おそらく、ボタンの隣に小さいコンボボックスを追加する方がいいでしょう。

おそらくこのようなものでしょうか?
http://www.codeproject.com/KB/buttons/SplitButton.aspx

+0

私は非常に非標準で混乱することに同意します。悪いデザインのIMO。 –

+0

@エドワード - まあ、私のアイデアは実際にチフラックスのリンクに掲載されたソリューションに非常によく似ているので、私はそれがひどく非標準で混乱しているとは思わない。しかし、リンクされたソリューションは私のものよりもはっきりとエレガントです。将来のアプリケーションで意味があるのであれば、おそらくその方向に向かいます。 –

2

Button(および他の特定のコントロール)では、MouseClickイベントは、左ボタンに対してのみ発生します。 MSDNを参照してください。

右のボタンについて知りたい場合は、MouseUpイベントに応答してください。他のポスターが指摘しているように、これは大きなUIイディオムではありません。

3

MouseUpイベントではなく、MouseDownイベントで実装する方がよいでしょう。 Button.XとButton.Yが中であることをテスト...ただ、これを試し、それが御馳走に動作します:)

0

マウスUPイベントを使用します。私は、これは

編集MouseClickとイベントから多くの異なる方法を理解していけませんそうでない場合はボタンからマウスを離しています。 テリーG

関連する問題