2011-01-22 6 views
1

안녕하세요 모두 저는 대학 프로젝트의 일부 문제로 고심하고 있습니다. 저는 대학에서 C# 과정에있는 프로젝트를 위해 C#에서 "4 in a row"게임을 만들고 있습니다.패널 이벤트가 작동하지 않습니다. #

나는 GameForm이라는 폼을 만들었고 그 안에는 panelBoardGame이라는 패널을 추가했습니다. to the panelBoardGame 움직일 수 있도록 클릭 할 수있는 레이블 배열을 추가했으며 보드 자체를 나타 내기 위해 레이블 행렬도 추가했습니다.

필자의 임무는 마우스가 패널 영역 내에있을 때마다, 특정 플레이어의 CoinImage가 패널 영역 내부에있는 동안 커서와 함께 이동한다는 것입니다. 마우스가이 영역 밖에 있으면 CoinImage가 표시되지 않습니다.

그래서 나는 onMouseEnter, PanelBoardGame의 OnMouseLeave 이벤트를 발생 시키려고했지만 어떻게 든 그들은 심지어 실행되지 않을 것입니다. 내 마우스가 panelBoardGame 영역 안에있을 때마다 panelBoardGame_MouseMove (......) 함수 내의 코드가 실행되지 않습니다.

누구나 저를 도울 수 있습니까?

패널과 내부가 나는 영상을 게시 질수 있지만 필자 주위 블랙의 테두리 안에 여기 Image of the Form

폼의 화상 여기 이미지를 업로드 여기서 새로운 IM 때문에 패널에 레이블을 추가했습니다.

+0

양식 이미지를 추가 할 수 있습니까? –

+0

ive는 양식이 –

답변

1

라벨이 패널 영역을 완전히 덮고 있습니다. Windows에서는 맨 위 컨트롤 만 마우스 이벤트를받습니다. 따라서 마우스가 레이블 중 하나 위에있을 때 마우스 이벤트는 레이블을 포함하는 패널이 아닌 레이블로 이동합니다. 그래서 라벨에 MouseMove 이벤트 핸들러를 설정하면 실행되는 것을 볼 수 있습니다.

+0

인 이미지를 추가했습니다. 레이블은 패널의 모든 영역을 포함합니다. 패널 영역에서 커서가 움직일 때마다 동전이 계속 나오고 커서가 패널 밖으로 나왔을 때 동전이 사라 지길 원합니다 –

2

대부분의 경우 이동 및 호버 이벤트는 맨 위의 컨트롤 (레이블)로 이동합니다. 귀하의 패널 중 일부가 게재됩니까?

패널의 MouseEnter 이벤트에서 마우스를 캡처 할 수 있습니다.

boardPanel.Capture = true; 

그러나 이는 레이블의 마우스 조작을 방해 할 수 있습니다.

모두 (UI) 권한을 얻는 것이 보이는 것보다 훨씬 어려울 것입니다. 보다 간단한 클릭 - 클릭 (act-on-click) 디자인을 고려하십시오. 시작하기.

+0

양식 이벤트는 실행되지만 패널 이벤트는 ' 티. 예를 들어. GameForm_OnMouseEnter/Move는 작동 하나 panelBoardGame_OnMouseEnter/Move는 실행되지 않습니다. –

관련 문제