Практическое руководство. Координаты в серверном веб-элементе управления ImageButton

Visual Studio 2010

Обновлен: Ноябрь 2007

При нажатии на элемент управления ImageButton параметр, переданный обработчику событий для события Click элемента управления, содержит координаты, указывающие место щелчка. Это позволяет выполнять разные задачи в зависимости от места щелчка.

cftdhkwf.alert_note(ru-ru,VS.100).gifПримечание.

Если необходимо определить конкретные области изображения как области, куда пользователь может щелкнуть мышью, можно также использовать элемент управления ImageMap.

Сведения о координатах отправляются как часть объекта аргумента события для события Click элемента управления ImageButton.

Определение координат места щелчка

  1. Создайте обработчик для события Click элемента управления ImageButton. Объект аргумента события для метода должен относиться к типу ImageClickEventArgs.

  2. В обработчике событий Click следует получить свойства X и Y объекта аргумента ImageClickEventArgs.

    Значения координат x и y выражаются в точках; левый верхний угол изображения имеет координаты (0,0).

    В следующем примере показано, как определить, в каком месте рисунка размером 100 на 100 точек пользователь щелкнул изображение. Программный код получает координаты места щелчка. Затем они сравниваются с предварительно определенными значениями, что позволяет определить конкретный квадрант, в котором пользователь щелкнул изображение. Результаты отображаются в элементе управления 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;
    }
    
Показ: