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
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.
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; }