2009-12-04 6 views
0

에 대한 제어가 나는의 WinForm 윈도우 모바일 5.0을 개발하고 있어요 닷넷 컴팩트 프레임 워크 2.0 SP2위의 C#..NET Compact Framework에서 : 컨트롤하면 onMouseDown 문제

두 개의 사용자 지정 컨트롤 (컨트롤에서 상속하는 두 클래스)이 있습니다. control1의 특정 위치를 클릭하면 control2가 표시됩니다 (control2는 control1의 제어입니다). 즉, control2는 control1에 표시되는 팝업 메뉴입니다.

Control2에는 2 개의 링크 레이블이 있습니다. 사용자가 그 중 하나를 클릭하면 control2는 사용자 선택에 대해 control1에 알리기 위해 이벤트를 발생시킵니다.

컨트롤 1에서는 OnMouseDown, OnMouseUP 및 OnMouseMove를 재정의했습니다.

확인. 사용자가 control2의 linklabel을 클릭하는 경우 코드를 디버깅했습니다. control2에

  • , linklabel_click 방법 : 이벤트를 통해 간다.
  • 컨트롤 1에서는 control2_customEvent 메서드입니다.
  • 그리고 여기 내 문제, 컨트롤 1, OnMouseMove 메서드 및 OnMouseUp입니다.

controll을 클릭하지 않고 control2를 클릭하면 control1.OnMouseMove 및 control1.OnMouseUp도 발생합니다.

업데이트 : 왜 제어 1에 13. OnMouseMove에서는 및 onMouseUp에 발사되어

내가 control2 이상 클릭하면?

감사합니다.

+0

마우스를 클릭 했으므로 OnMouseDown이 (가) 발생합니다. 그게 네가 물어 보려고 한 것인가? –

+0

아니요, 왜 내가 Control2를 클릭하면 Control1에서 OnMouse 이벤트가 실행되는지 묻고 싶습니다. – VansFannel

답변

1

정확합니다. 컨트롤 2에 마우스를 아래로 누릅니다. 컨트롤 2가 사라져 이제 해당 MouseUp이 현재 표시되어있는 컨트롤에서 호출됩니다 (Control1).

이렇게하지 않으려면 두 가지 방법이 모두 작동하지 않게하십시오. MouseUp 또는 MouseDown 두 가지를 함께 사용하지 마십시오.

+0

I_ 당신을 이해하지 못합니다. 나는 Control1에 정의 된 MouseUp과 MouseDown이 필요하다. – VansFannel

+0

링크를 클릭하면 아래로 마우스를 가져온 다음 마우스를 위로 이동합니다. 문제는 마우스 다운이 컨트롤 2 (링크 클릭)에서 발생한다는 것입니다. 제어 2 그 때 그 제어 장치가 사라지고 제어 장치가 제어 장치 1을 제어합니다. 그런 다음 마우스 업 이벤트가 발생합니다. 이제는 제어 번호 1로 넘어갑니다.이 문제를 피하는 방법은 모든 "동작/커밋"이벤트를 마우스를 위나 아래로 움직이는 것입니다. 나는 나 자신보다 마우스를 선호한다. 대신 MouseUp을 사용하려면 링크를 다시 작성하십시오. 이렇게하려면 직접 링크 컨트롤을 작성해야 할 수 있으므로 먼저 버튼을 사용하고 MouseUP (클릭하지 않음)을 처리하십시오. – Quibblesome

+0

알았어, 해냈다. 고맙습니다. – VansFannel

관련 문제