Comment : déterminer des coordonnées dans un contrôle serveur Web ImageButton
Mise à jour : novembre 2007
Lorsque les utilisateurs cliquent sur un contrôle ImageButton, un paramètre transmis au gestionnaire d'événements pour l'événement Click du contrôle contient des coordonnées qui indiquent où l'utilisateur a cliqué. Cela vous permet d'accomplir diverses tâches en fonction de l'endroit sur lequel l'utilisateur a cliqué.
Remarque : |
---|
Si vous souhaitez définir des zones spécifiques d'une image comme régions sur lesquelles les utilisateurs peuvent cliquer, vous pouvez aussi utiliser le contrôle ImageMap. |
Les informations relatives aux coordonnées sont envoyées dans l'objet événement-argument pour l'événement Click du contrôle ImageButton.
Pour déterminer les coordonnées de l'endroit sur lequel un utilisateur a cliqué
Créez un gestionnaire d'événements pour l'événement Click du contrôle ImageButton. L'objet événement-argument de la méthode doit être de type ImageClickEventArgs.
Dans le gestionnaire d'événements Click, obtenez les propriétés X et Y de l'objet d'argument ImageClickEventArgs.
Les coordonnées x et y sont exprimées en pixels, le coin supérieur gauche de l'image correspondant aux coordonnées (0,0).
L'exemple suivant montre comment vous pouvez déterminer l'endroit sur lequel l'utilisateur a cliqué dans un graphisme de 100 par 100 pixels. Le code récupère les coordonnées x et y de l'endroit où l'utilisateur a cliqué. Il les compare ensuite à des valeurs prédéterminées pour contrôler si l'utilisateur a cliqué dans un quadrant particulier. Les résultats sont affichés dans un contrôle 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; }