방법: ImageButton 웹 서버 컨트롤에서 좌표 확인

업데이트: 2007년 11월

사용자가 ImageButton 컨트롤을 클릭하면 해당 컨트롤의 Click 이벤트에 대한 이벤트 처리기로 전달된 매개 변수에 사용자가 클릭한 지점을 나타내는 좌표가 포함됩니다. 이렇게 하면 사용자가 클릭한 위치에 따라 각기 다른 작업이 수행되도록 할 수 있습니다.

참고:

이미지의 특정 영역을 사용자가 클릭할 수 있는 영역으로 정의하려면 ImageMap 컨트롤을 사용할 수도 있습니다.

좌표 정보는 ImageButton 컨트롤의 Click 이벤트에 대한 이벤트 인수 개체의 일부로 전송됩니다.

사용자가 클릭한 좌표를 확인하려면

  1. ImageButton 컨트롤의 Click 이벤트에 대한 이벤트 처리기를 만듭니다. 메서드의 이벤트 인수 개체는 ImageClickEventArgs 형식이어야 합니다.

  2. Click 이벤트 처리기에서 ImageClickEventArgs 인수 개체의 XY 속성을 가져옵니다.

    x, y 좌표는 픽셀 단위로 표시되며 이미지의 왼쪽 위 모퉁이가 원점(0,0)입니다.

    다음 예제는 100x100 픽셀의 그래픽에서 사용자가 클릭한 위치를 확인하는 방법을 보여 줍니다. 이 코드는 사용자가 클릭한 x, y 좌표를 가져옵니다. 그런 다음 미리 정해진 값과 비교하여 사용자가 특정 사분면에서 클릭하였는지 확인합니다. 결과는 Label 컨트롤에 표시됩니다.

    Protected Sub ImageButton1_Click(ByVal sender As System.Object, _
          ByVal e As System.Web.UI.ImageClickEventArgs) _
          Handles ImageButton1.Click
       Dim msg as String = ""
       Dim x As Integer = e.X
       Dim y As Integer = e.Y
    
       ' The button graphic is assumed to be 100x100 pixels.
       ' This checks coordinates against predetermined values that
       ' make up quadrants of the picture.
       If x >= 50 And y >= 50 Then
          msg = "Southeast"
       ElseIf x >= 50 And y < 50 Then
          msg = "Northeast"
       ElseIf x < 50 And y >= 50 Then
          msg = "Southwest"
       ElseIf x < 50 And y < 50 Then
          msg = "Northwest"
       End If
       Label1.Text = msg
    End Sub
    
    protected void ImageButton1_Click(object sender, 
        System.Web.UI.ImageClickEventArgs e)
    {
        string msg = "";   
        int x = e.X;   
        int y = e.Y;   
    
        // The button graphic is assumed to be 100x100 pixels.
        // This checks coordinates against predetermined values that
        // make up quadrants of the picture.
        if(x >= 50 && y >= 50)
        {
            msg = "Southeast";
        }
        else if(x >=50 && y < 50)
        {
             msg = "Northeast";
        }
        else if(x < 50 && y >= 50)
        {
            msg = "Southwest";
        }
        else if(x < 50 && y < 50)
        {
            msg = "Northwest";
        }
        Label1.Text = msg;
    }
    

참고 항목

참조

Button 웹 서버 컨트롤 개요