2009-08-26 9 views
0

Comment puis-je vérifier si une souris a été cliqué dans un plan de coordonnées spécifique sur la forme "?vérifier si une souris a été cliqué dans une zone spécifique

+0

Je suis un peu rouillé avec les maths, mais n'est-ce pas la forme dans un seul plan de coordonnées? Voulez-vous dire que vous voulez les coordonnées x, y spécifiques où l'utilisateur a cliqué sur la souris et si oui ou non ils étaient à l'intérieur d'une zone spécifique (rectangulaire, polygonale, etc.) sur le formulaire? –

Répondre

1

Vous utilisez le MouseEventArgs.X et MouseEventArgs.Y pour voir si elles sont dans le plan de coordonnées.

Cette réponse a été un clic le lien que j'ai posté dans ma réponse à votre question précédente.

http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs_members.aspx

Ajouté

Scénario:. J'ai une zone en forme de rectangle Je veux gérer les clics dans

Le coin supérieur gauche de la forme est à l'emplacement 28,83 (gauche, haut)

La taille est de 225, 52 (largeur, hauteur)

Donc si l'emplacement X (Gauche est entre 28 et 28 + 225 (253) ET l'emplacement Y est entre 83 et 83 + 52 (135) est dans les limites.

exemple le code:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication4 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      this.MouseClick += new MouseEventHandler(Form1_MouseClick); 
     } 

     void Form1_MouseClick(object sender, MouseEventArgs e) 
     { 
      if (e.X >= 28 && e.X <= 253 && e.Y >= 83 && e.Y <= 135) 
      { 
       MessageBox.Show("Clicked within the rectangle"); 
      } 
      else 
      { 
       MessageBox.Show("Clicked outside the rectangle"); 
      } 
     } 
    } 
} 
+0

s'il vous plaît donner un exemple de code –

+0

hey david im désolé pouvez-vous faire vb.net s'il vous plaît? –

1

code VB pour marquer une zone carrée de 100 pixels à partir de Coord 100.100. (Définissez vos propres valeurs.)

Private Sub frm_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick 

     Dim x As Integer = e.Location.X 
     Dim y As Integer = e.Location.Y 

     If x > 100 AndAlso x < 200 AndAlso y > 100 AndAlso y < 200 Then 
     MessageBox.Show("Inside") 
     Else 
     MessageBox.Show("Outside") 
     End If 

    End Sub 

Bien sûr, cela ne fera que bloquer le clic de la souris s'il touche la surface du formulaire. Vous devrez réfléchir à ce que vous voulez faire si vous cliquez sur un certain contrôle sur le formulaire.

+0

Ou vous pouvez utiliser Dim x As Integer = e.X (Ma fenêtre IntelliSense était petite et j'ai d'abord vu la propriété Location!) – Bill

Questions connexes