こんにちは、Windows フォーム アプリケーションを作成しています。そのアプリケーションにユーザー コントロールを追加しました。右クリック イベントを無効にする方法はありますか。私が使用する場合
Button.click += SomeMethod
両方(左と右)のクリックの場合は someMethod になります。左クリックのみの場合にこのアクションを実行したい。
イベント内でどのボタンがクリックされたかを処理できませんか?
private void uc_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
//more logic here
}
}
いくつかの方法を実行できます。
1) button.click イベントを使用する場合は、以下のコードを実行します。
Button.Click += SomeMethod;
private void SomeMethod(object sender, EventArgs e)
{
System.Windows.Forms.Button bt = sender as System.Windows.Forms.Button;
if (bt != null)
{
if (bt.Equals(System.Windows.Forms.MouseButtons.Left))
{
// do something;
}
}
}
2) または、Windows フォーム "button.MouseClick" でマウス クリック イベントを使用します。
Button.MouseClick += SomeMethod;
private void SomeMethod(object sender, MouseEventArgs e)
{
if (!e.Button.Equals(System.Windows.Forms.MouseButtons.Right))
{
// do work
}
}
e.Handled = true を使用できることを望んでいましたが、この場合、どちらのイベント引数にも Handled プロパティがないため、手動で確認する必要があります。
イベントハンドラー内でマウスのどのボタンがクリックされたかを検出できます。
ハンドラのMouseEventArgs e引数を確認してください
ボタンをチェックして、左ボタンのクリックの場合にネイティブの onClick を呼び出すことができます。
【疑似コード】
SomeMethod(e){
if (e.Button == left){
control.onClick(e);
}
}