다음을 통해 공유


MouseEventArgs 클래스

MouseUp, MouseDownMouseMove 이벤트에 대한 데이터를 제공합니다.

네임스페이스: System.Windows.Forms
어셈블리: System.Windows.Forms(system.windows.forms.dll)

구문

‘선언
<ComVisibleAttribute(True)> _
Public Class MouseEventArgs
    Inherits EventArgs
‘사용 방법
Dim instance As MouseEventArgs
[ComVisibleAttribute(true)] 
public class MouseEventArgs : EventArgs
[ComVisibleAttribute(true)] 
public ref class MouseEventArgs : public EventArgs
/** @attribute ComVisibleAttribute(true) */ 
public class MouseEventArgs extends EventArgs
ComVisibleAttribute(true) 
public class MouseEventArgs extends EventArgs

설명

포인터가 컨트롤 위에 있는 동안 마우스 단추를 누르면 MouseDown 이벤트가 발생합니다. 포인터가 컨트롤 위에 있는 동안 마우스 단추를 놓으면 MouseUp 이벤트가 발생합니다. 마우스 포인터를 컨트롤 위로 이동하면 MouseMove 이벤트가 발생합니다. 누른 마우스 단추, 마우스 단추를 눌렀다가 놓은 횟수, 마우스의 좌표 및 마우스 휠이 움직인 양을 지정하는 MouseEventArgs입니다.

사용자가 마우스 단추를 놓기 전에 포커스를 다른 응용 프로그램으로 전환할 경우에는 해당되는 MouseUp이 없는 MouseDown 이벤트를 받을 수 있습니다.

이 세 가지 이벤트는 Control, AxHostNotifyIcon에 사용됩니다.

이벤트 모델에 대한 자세한 내용은 이벤트 및 대리자를 참조하십시오.

예제

다음 코드 예제에서는 마우스 오른쪽 단추를 클릭하면 컨트롤의 모든 텍스트가 선택되도록 TextBox 컨트롤의 MouseDown 이벤트를 처리합니다. 이 예제를 실행하려면 textBox1이라는 TextBox 컨트롤이 포함된 폼이 있어야 합니다.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    TextBox1.ContextMenu = New ContextMenu()
End Sub

Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
    If (e.Button = Windows.Forms.MouseButtons.Right) Then
        TextBox1.Select(0, TextBox1.Text.Length)
    End If
End Sub
private void Form1_Load(object sender, EventArgs e)
{
    // This line suppresses the default context menu for the TextBox control. 
    textBox1.ContextMenu = new ContextMenu();
    textBox1.MouseDown += new MouseEventHandler(textBox1_MouseDown);
}

void textBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        textBox1.Select(0, textBox1.Text.Length);
    }
}

다음 코드 예제에서는 Location 속성을 사용하여 마우스 왼쪽 단추 클릭을 추적하고 사용자 입력에 대한 응답으로 일련의 직선 선 세근먼트를 그립니다. 이 예제에서는 폼을 숨긴 후 다시 표시할 경우 선이 다시 그려지지 않습니다. 해당 코드는 예제를 간소화하기 위해 생략되었습니다.

Dim FirstPoint As Point
Dim HaveFirstPoint As Boolean = False

Sub Form1_MouseDownDrawing(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
    If HaveFirstPoint Then
        Dim g As Graphics = Me.CreateGraphics()
        g.DrawLine(Pens.Black, FirstPoint, e.Location)
        HaveFirstPoint = False
    Else
        FirstPoint = e.Location
        HaveFirstPoint = True
    End If
End Sub
Point firstPoint;
Boolean haveFirstPoint;

public void EnableDrawing()
{
    this.MouseDown += new MouseEventHandler(Form1_MouseDownDrawing);
}

void Form1_MouseDownDrawing(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (haveFirstPoint)
    {
        Graphics g = this.CreateGraphics();
        g.DrawLine(Pens.Black, firstPoint, e.Location);
        haveFirstPoint = false;
    }
    else
    {
        firstPoint = e.Location;
        haveFirstPoint = true;
    }
}

다음 코드 예제에서는 XY 속성을 사용하여 마우스 포인터의 현재 위치를 ToolTip 창에 표시합니다.

Dim TrackTip As ToolTip

Private Sub TrackCoordinates()
    TrackTip = New ToolTip()
End Sub

Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
    Dim TipText As String = String.Format("({0}, {1})", e.X, e.Y)
    TrackTip.Show(TipText, Me, e.Location)
End Sub
ToolTip trackTip;

private void TrackCoordinates()
{
    trackTip = new ToolTip();
    this.MouseMove += new MouseEventHandler(Form1_MouseMove);
}

void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
    String tipText = String.Format("({0}, {1})", e.X, e.Y);
    trackTip.Show(tipText, this, e.Location);
}

상속 계층 구조

System.Object
   System.EventArgs
    System.Windows.Forms.MouseEventArgs
       System.Windows.Forms.DataGridViewCellMouseEventArgs
       System.Windows.Forms.HandledMouseEventArgs
       System.Windows.Forms.StatusBarPanelClickEventArgs
       System.Windows.Forms.TreeNodeMouseClickEventArgs

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

MouseEventArgs 멤버
System.Windows.Forms 네임스페이스
OnMouseDown
Control.MouseDown 이벤트
OnMouseUp
Control.MouseUp 이벤트
OnMouseMove
Control.MouseMove 이벤트
MouseDown
MouseUp
MouseMove