2013-06-04 2 views
2

Hii Windows 양식 응용 프로그램을 만들고 있습니다. 해당 응용 프로그램에서 사용자 정의 컨트롤을 추가했습니다. 마우스 오른쪽 버튼 클릭 이벤트를 비활성화하는 방법이 있습니까? 나는 그것은 모두 (왼쪽 및 오른쪽) 클릭의 경우 것으로 someMethod에가는Win 양식 응용 프로그램에서 마우스 오른쪽 버튼을 클릭하십시오.

Button.click += SomeMethod 

를 사용하는 경우 때문이다. 왼쪽 클릭의 경우에만이 작업을 수행하고 싶습니다.

답변

3

당신이 이벤트의 내부에서 클릭 된 버튼을 처리 할 수 ​​처리기의

확인 MouseEventArgs e 인수?

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

이벤트 처리기 내에서 클릭 한 마우스 버튼을 감지 할 수 있습니다.

1

왼쪽 버튼 클릭의 경우 버튼을 확인하고 기본 onClick을 호출 할 수 있습니다.

[의사 코드]

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

당신이 방법의 수를 할 수있는, 당신이 당신의 button.click 이벤트를 사용하려면

1) 다음 코드 아래 수행

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) 또는 창에서 마우스 클릭 이벤트를 사용는 "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를 사용할 수 있다고 기대했다하지만,이 경우 이벤트 인수의도는 취급 속성이 있습니다.

관련 문제