Condividi tramite


Procedura: determinare le coordinate in un controllo server Web ImageButton

Aggiornamento: novembre 2007

Quando viene selezionato un controllo ImageButton, un parametro passato al gestore eventi per l'evento Click del controllo include le coordinate che indicano il punto in cui l'utente ha fatto clic. Ciò consente di eseguire attività diverse a seconda del punto scelto.

Nota:

Per definire aree specifiche di un'immagine come aree selezionabili dall'utente, è possibile utilizzare anche il controllo ImageMap.

Le informazioni sulle coordinate vengono inviate insieme all'oggetto dell'argomento dell'evento Click del controllo ImageButton.

Per determinare le coordinate del punto su cui l'utente fa clic

  1. Creare un gestore eventi per l'evento Click del controllo ImageButton. L'oggetto dell'argomento dell'evento per il metodo deve essere di tipo ImageClickEventArgs.

  2. Nel gestore eventi Click ottenere le proprietà X e Y dell'oggetto dell'argomento ImageClickEventArgs.

    Le coordinate x e y sono espresse in pixel, con l'angolo superiore sinistro dell'immagine corrispondente a (0,0).

    L'esempio seguente illustra come determinare il punto in cui l'utente fa clic in un'immagine di 100 per 100 pixel. Il codice ricava le coordinate x e y del punto scelto dall'utente. Le confronta quindi ai valori predeterminati per vedere se l'utente ha fatto clic in un determinato riquadro. I risultati vengono visualizzati in un controllo 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;
    }
    

Vedere anche

Riferimenti

Cenni preliminari sui controlli server Web pulsante