5단계: 각 옆면에 대한 MouseEnter 이벤트 처리기 추가
마우스 포인터가 벽에 닿을 때마다 마우스 포인터를 시작 위치로 되돌리면 미로 게임이 훨씬 더 재미있어질 수 있습니다.더 읽기 전에 이렇게 하는 방법을 생각해 보십시오.
이 항목에 대 한 비디오 버전을 자습서 2: 미로 Visual Basic-3 비디오 만들기 또는 연습 과제 2: 미로 C#에서-3 비디오 만들기.
각 벽에 대한 MouseEnter 이벤트 처리기를 추가하려면
Windows Forms 디자이너로 이동하고 새로 추가된 벽 중 하나를 클릭합니다.
속성 창으로 이동하고 이벤트 아이콘을 클릭하여 벽에 대한 이벤트를 표시합니다.MouseEnter 이벤트까지 아래로 스크롤합니다.이 이벤트를 두 번 클릭하는 대신 wall_MouseEnter라는 텍스트를 입력하고 Enter 키를 누릅니다.다음과 같이 이벤트 아이콘과 속성 창이 나타납니다.
이벤트 아이콘
MouseEnter 이벤트가 표시된 속성 창
[!참고]
속성 창의 이벤트 테이블에 이벤트 이름을 직접 입력하면 IDE에서 이 이름을 사용하여 이벤트 처리기를 만들고 이를 컨트롤의 이벤트에 연결합니다.다른 사용자가 사용자의 코드를 보다 쉽게 읽고 이해할 수 있도록 IDE에서 논리적인 이벤트 이름을 선택하도록 할 수도 있습니다.IDE에서는 이벤트 처리기의 이름을 선택할 때 컨트롤 이름과 이벤트 이름을 사용합니다.이 경우 label4, label18, label25 등과 같은 벽의 기본 이름을 변경하면 안 됩니다.따라서 label12라는 벽을 클릭하면 IDE에서 해당 이벤트 처리기의 이름을 label12_MouseEnter로 지정합니다.이름으로 wall_MouseEnter를 입력하면 적용 범위가 더 넓은 이름을 선택하게 됩니다.이는 이 자습서의 뒷부분에서처럼 여러 컨트롤에 하나의 이벤트 처리기를 사용하는 경우에 특히 중요합니다.
Enter 키를 누르면 IDE에서 새 이벤트 처리기를 만들고 이를 해당 벽의 MouseEnter 이벤트에 연결합니다.새로 추가된 코드는 코드 편집기에 다음과 같이 나타납니다.Visual Basic의 경우 다음 코드와 같이 특정 레이블은 Label8일 수 없습니다.
Private Sub wall_MouseEnter() Handles Label8.MouseEnter End Sub
private void wall_MouseEnter(object sender, EventArgs e) { }
다음으로 MoveToStart() 메서드에 대한 호출과 함께 이 메서드를 설명하는 주석을 추가합니다.먼저 메서드로 이동한 다음 MoveToStart() 문을 추가합니다.IntelliSense 창이 열리고 다음이 표시됩니다.
IntelliSense 창
MoveToStart() 메서드를 추가하면 IDE에서 이 메서드를 IntelliSense 창에 추가합니다.사용자가 추가한 XML 주석은 도구 설명에 표시됩니다.이는 많은 메서드가 있는 프로그램을 만들 때 유용합니다.
Tab 키를 눌러 메서드를 이름을 완성하도록 IntelliSense에 지시합니다.Visual C# 코드를 작성하는 경우에는 문의 끝에 세미콜론(;)을 추가해야 합니다.그런 다음 문 위에 주석을 추가합니다.이 코드는 다음과 같습니다.Visual Basic의 경우 다음 코드와 같이 특정 레이블은 Label8일 수 없습니다.
Private Sub wall_MouseEnter() Handles Label8.MouseEnter ' When the mouse pointer hits a wall or enters the panel, ' call the MoveToStart() method. MoveToStart() End Sub
private void wall_MouseEnter(object sender, EventArgs e) { // When the mouse pointer hits a wall or enters the panel, // call the MoveToStart() method. MoveToStart(); }
프로그램을 저장하고 실행합니다.이벤트 처리기에 연결한 벽 위로 마우스 포인터를 이동합니다.선택한 벽이 기억나지 않으면 해당 벽을 찾을 때까지 각 벽 위로 마우스 포인터를 이동합니다. 해당 벽에 닿는 즉시 마우스 포인터는 시작 위치로 되돌아갑니다.
다음으로 나머지 벽에 대해 동일한 작업을 수행합니다.각 벽에 대해 동일한 MouseEnter 이벤트 처리기를 작성할 수 있습니다.그러나 프로세스가 길어질 수 있고, 프로그램에 동일한 코드 줄이 여러 개 생길 수 있으며, 코드를 변경하기가 어려워질 수 있습니다.IDE를 사용하면 모든 벽에 동일한 이벤트 처리기를 보다 쉽게 연결할 수 있습니다.
Windows Forms 디자이너로 이동하고 편집 메뉴에서 모두 선택을 클릭합니다.
Ctrl 키를 누른 채로 Finish 레이블을 클릭하여 선택을 취소합니다.그러면 모든 벽과 패널이 선택된 상태로 있습니다.
이제 속성 창의 이벤트 테이블로 이동합니다.MouseEnter 이벤트까지 아래로 스크롤하고 옆에 있는 입력란을 클릭합니다.드롭다운 화살표가 나타납니다.이 드롭다운 화살표를 클릭하면 이 이벤트에 사용하기 위해 선택할 수 있는 프로그램의 모든 이벤트 처리기 목록이 표시됩니다.이 경우 다음 그림과 같이 앞에서 추가한 finishLabel_MouseEnter 이벤트 처리기와 방금 작성한 wall_MouseEnter 이벤트 처리기가 표시됩니다.
이벤트 처리기가 있는 MouseEnter 이벤트
wall_MouseEnter를 선택합니다.잘못된 이벤트 처리기를 선택하거나 실수로 새 이벤트 처리기를 추가한 경우에는 모든 벽과 패널을 다시 선택한 다음 올바른 메서드를 선택하면 됩니다.
이제 미로 게임이 훨씬 더 재미있어 졌습니다.프로그램을 저장하고 실행합니다.마우스 포인터로 벽을 건드리거나 마우스 포인터를 미로 밖으로 이동했다가 다시 미로 안으로 이동하면 자동으로 마우스 포인터가 미로의 시작 위치로 되돌아가야 합니다.
계속하거나 검토하려면
다음 자습서 단계로 이동하려면 6단계: SoundPlayer 추가를 참조하십시오.
이전 자습서 단계로 돌아가려면 4단계: 게임 다시 시작을 위한 메서드 추가를 참조하십시오.