2013-06-04 81 views
2

嗨我正在製作Windows窗體應用程序 我在該應用程序中添加了用戶控件 有沒有辦法禁用右鍵單擊事件。 因爲如果我使用禁用右鍵單擊Win窗體應用程序

Button.click += SomeMethod 

這是要在的someMethod兩個(左和右)的點擊情況。 我只想在左鍵單擊的情況下執行此操作。

回答

3

你能不能處理被點擊事件的內部哪個按鈕呢?

private void uc_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button == System.Windows.Forms.MouseButtons.Left) 
    { 
     //more logic here 
    } 
} 
1

您可以檢測到在事件處理程序中單擊了哪個鼠標按鈕。

檢查MouseEventArgs e參數處理

1

您可以檢查按鈕並調用本機onClick以查看左鍵單擊的情況。

[僞代碼]

SomeMethod(e){ 
    if (e.Button == left){ 
    control.onClick(e); 
    } 
} 
1

你可以做的方式號碼;

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 =真實的,但在這種情況下,無論是事件的說法有Handled屬性,因此,你必須手動檢查。