3

こんにちは、Windows フォーム アプリケーションを作成しています。そのアプリケーションにユーザー コントロールを追加しました。右クリック イベントを無効にする方法はありますか。私が使用する場合

Button.click += SomeMethod

両方(左と右)のクリックの場合は someMethod になります。左クリックのみの場合にこのアクションを実行したい。

4

4 に答える 4

3

イベント内でどのボタンがクリックされたかを処理できませんか?

private void uc_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
         //more logic here
    }
}
于 2013-06-04T07:05:54.853 に答える
2

いくつかの方法を実行できます。

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 プロパティがないため、手動で確認する必要があります。

于 2013-06-04T07:37:04.210 に答える
1

イベントハンドラー内でマウスのどのボタンがクリックされたかを検出できます。

ハンドラのMouseEventArgs e引数を確認してください

于 2013-06-04T07:05:08.927 に答える
1

ボタンをチェックして、左ボタンのクリックの場合にネイティブの onClick を呼び出すことができます。

【疑似コード】

SomeMethod(e){
  if (e.Button == left){
    control.onClick(e);
  }
}
于 2013-06-04T07:07:10.340 に答える