Partager via


Shape.PointToClient, méthode

Calcule l'emplacement du point spécifié à l'écran en coordonnées client.

Espace de noms :  Microsoft.VisualBasic.PowerPacks
Assembly :  Microsoft.VisualBasic.PowerPacks.Vs (dans Microsoft.VisualBasic.PowerPacks.Vs.dll)

Syntaxe

'Déclaration
Public Function PointToClient ( _
    position As Point _
) As Point
public Point PointToClient(
    Point position
)
public:
Point PointToClient(
    Point position
)
member PointToClient : 
        position:Point -> Point
public function PointToClient(
    position : Point
) : Point

Paramètres

  • position
    Type : Point

Valeur de retour

Type : Point
Point qui représente le Point converti, p, en coordonnées clientes.

Notes

Le PointToClient méthode peut être utilisée pour convertir une valeur comme un DragEventArgs qui retourne les coordonnées d'écran au client les coordonnées d'un formulaire.

Exemples

L'exemple suivant montre comment utiliser le PointToClient méthode pour passer un RectangleShape lorsqu'un fichier image est déplacé vers lui. Le PointToClient (méthode) déplace le RectangleShape par rapport à l'écran client. Par exemple, si l'emplacement cible est de 10 pixels vers le bas et 10 pixels à droite de l'angle supérieur gauche du rectangle, le rectangle est déplacé vers un pixels emplacement 10 vers le bas et 10 pixels à droite de l'angle supérieur gauche du formulaire.

Cet exemple suppose que vous disposez d'un RectangleShape RectangleShape1 contrôle sur un formulaire et que la AllowDrop du formulaire est définie sur true.

Private Sub Form1_DragDrop(
    ByVal sender As Object, 
    ByVal e As System.Windows.Forms.DragEventArgs
  ) Handles Me.DragDrop

    ' Determine whether the drop is within the rectangle. 
    If RectangleShape1.HitTest(e.X, e.Y) = True Then 
        ' Handle file data. 
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then 
            ' Assign the file names to a string array, in  
            ' case the user has selected multiple files. 
            Dim files As String() = 
              CType(e.Data.GetData(DataFormats.FileDrop), String())
            Try 
                ' Assign the first image to the BackGroundImage 
                ' property.
                RectangleShape1.BackgroundImage = 
                  Image.FromFile(files(0))
                ' Set the rectangle location relative to the form.
                RectangleShape1.Location = 
                  RectangleShape1.PointToClient(New Point(e.X, e.Y))
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return 
            End Try 
        End If 
    End If 
End Sub 
Private Sub Form1_DragEnter(
    ByVal sender As Object, 
    ByVal e As DragEventArgs
  ) Handles MyBase.DragEnter

    ' If the data is a file, display the copy cursor. 
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    Else
        e.Effect = DragDropEffects.None
    End If 
End Sub
private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
    // Determine whether the drop is within the rectangle. 
    if (rectangleShape1.HitTest(e.X, e.Y)==true)
        // Handle file data.
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            // Assign the file names to a string array, in  
            // case the user has selected multiple files.
        {
            string[] files = (string[]) e.Data.GetData(DataFormats.FileDrop);
            try
            {
                // Assign the first image to the BackGroundImage 
                // property.
                rectangleShape1.BackgroundImage = Image.FromFile(files[0]);
                // Set the rectangle location relative to the form.
                rectangleShape1.Location = 
                    rectangleShape1.PointToClient(new Point(e.X, e.Y));
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
        }
    }
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
    // If the data is a file, display the copy cursor. 
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = DragDropEffects.Copy;
    }
    else
    {
        e.Effect = DragDropEffects.None;
    }
}

Sécurité .NET Framework

Voir aussi

Référence

Shape Classe

Microsoft.VisualBasic.PowerPacks, espace de noms

Autres ressources

Comment : dessiner des lignes avec le contrôle LineShape (Visual Studio)

Comment : dessiner des formes avec les contrôles OvalShape et RectangleShape (Visual Studio)

Introduction aux contrôles Line et Shape (Visual Studio)