다음을 통해 공유


Windows Forms의 마우스 이벤트

마우스 입력을 처리할 때는 일반적으로 마우스 포인터의 위치와 마우스 단추의 상태를 알아야 합니다. 이 항목에서는 마우스 이벤트에서 이러한 정보를 가져오는 방법과 Windows Forms 컨트롤에서 마우스 클릭 이벤트가 발생하는 순서에 대해 설명합니다. 모든 마우스 이벤트의 목록과 설명을 보려면 Windows Forms에서 마우스 입력이 작동하는 방식을 참조하십시오. 자세한 내용은 다음을 참조하십시오. 이벤트 개요(Windows Forms)이벤트 처리기 개요(Windows Forms)이벤트 처리기 개요(Windows Forms)이벤트 개요(Windows Forms)이벤트 처리기 개요(Windows Forms)이벤트 개요(Windows Forms)이벤트 처리기 개요(Windows Forms)이벤트 개요(Windows Forms).

마우스 정보

MouseEventArgs는 마우스 단추 클릭 및 마우스 움직임 추적과 관련된 마우스 이벤트 처리기로 전달됩니다. MouseEventArgs는 클라이언트 좌표에서 마우스 포인터의 위치, 누른 마우스 단추 및 마우스 휠의 스크롤 여부 등 마우스의 현재 상태에 대한 정보를 제공합니다. 마우스 포인터가 컨트롤 범위 안으로 들어간 시점과 범위를 벗어난 시점만 알려 주는 마우스 이벤트와 같은 경우는 EventArgs를 자세한 정보 없이 이벤트 처리기로 전달합니다.

마우스 단추의 현재 상태나 마우스 포인터 위치를 파악하고 마우스 이벤트가 처리되지 않게 하려면 Control 클래스의 MouseButtonsMousePosition 속성을 사용하면 됩니다. MouseButtons에서는 현재 눌러져 있는 마우스 단추에 대한 정보를 반환합니다. MousePosition에서는 마우스 포인터의 화면 좌표를 반환하며, 이 값은 Position에서 반환하는 값과 동일합니다.

화면 좌표와 클라이언트 좌표 간 변환

마우스 위치 정보가 클라이언트 좌표로 되어 있는 경우도 있고 화면 좌표로 되어 있는 경우도 있기 때문에 좌표계 간에 점을 변환해야 할 수 있습니다. Control 클래스에서 사용 가능한 PointToClientPointToScreen 메서드를 사용하면 이러한 변환을 쉽게 할 수 있습니다.

표준 클릭 이벤트 동작

마우스 클릭 이벤트를 적절한 순서대로 처리하려면 Windows Forms 컨트롤에서 클릭 이벤트가 발생하는 순서를 알아야 합니다. 모든 Windows Forms 컨트롤은 다음 목록에서 개별 컨트롤에 대해 명시된 경우를 제외하고는 마우스 단추를 누를 때와 놓을 때 모두 같은 순서로 클릭 이벤트를 발생시킵니다. 다음은 마우스 단추를 한 번 클릭할 때 발생하는 이벤트의 순서입니다.

  1. MouseDown 이벤트

  2. Click 이벤트

  3. MouseClick 이벤트

  4. MouseUp 이벤트

다음은 마우스 단추를 두 번 클릭할 때 발생하는 이벤트의 순서입니다.

  1. MouseDown 이벤트

  2. Click 이벤트

  3. MouseClick 이벤트

  4. MouseUp 이벤트

  5. MouseDown 이벤트

  6. DoubleClick 이벤트 해당 컨트롤의 StandardDoubleClick 스타일 비트가 true로 설정되어 있는지 여부에 따라 달라질 수 있습니다. ControlStyles 비트를 설정하는 방법에 대한 자세한 내용은 SetStyle 메서드를 참조하십시오.

  7. MouseDoubleClick 이벤트

  8. MouseUp 이벤트

마우스 클릭 이벤트의 순서를 보여 주는 코드 예제를 보려면 방법: Windows Forms 컨트롤에서 사용자 입력 이벤트 처리를 참조하십시오.

개별 컨트롤

다음 컨트롤은 표준 마우스 클릭 이벤트 동작을 따르지 않습니다.

토글 컨트롤의 그리기 동작

ButtonBase 클래스에서 파생되는 컨트롤과 같은 토글 컨트롤에는 마우스 클릭 이벤트에 관련된 다음과 같은 특유의 그리기 동작이 포함되어 있습니다.

  1. 사용자가 마우스 단추를 누릅니다.

  2. 컨트롤에서 눌러진 상태를 그립니다.

  3. MouseDown 이벤트가 발생합니다.

  4. 사용자가 마우스 단추를 놓습니다.

  5. 컨트롤에서 돋음 상태를 그립니다.

  6. Click 이벤트가 발생합니다.

  7. MouseClick 이벤트가 발생합니다.

  8. MouseUp 이벤트가 발생합니다.

    참고

    예를 들어, 마우스를 누르고 있는 동안 Button 컨트롤 밖으로 마우스를 이동하는 것과 같이 마우스 단추를 누르고 있는 동안 사용자가 토글 컨트롤 밖으로 포인터를 이동하면 토글 컨트롤이 돋음 상태로 그려지고 MouseUp 이벤트만 발생합니다. 이 경우에는 Click 또는 MouseClick 이벤트가 발생하지 않습니다.

참고 항목

기타 리소스

Windows Forms 응용 프로그램의 마우스 입력