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

Valeur de retour

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

Notes

La méthode d'PointToClient peut être utilisée pour convertir une valeur telle qu'DragEventArgs qui retourne des coordonnées d'écran dans les coordonnées clientes d'un formulaire.

Exemples

L'exemple suivant montre comment utiliser la méthode d'PointToClient pour déplacer RectangleShape lorsqu'un fichier image est supprimé sur celui-ci.La méthode d'PointToClient déplace RectangleShape relatif au formulaire client.Par exemple, si l'emplacement cible est 10 pixels enfoncée et 10 pixels à droite de l'angle supérieur gauche du rectangle, le rectangle est réduit aux pixels d'un emplacement 10 et à 10 pixels à droite de l'angle supérieur gauche du formulaire.

Cet exemple requiert que vous avez un contrôle d'RectangleShape nommé RectangleShape1 sur un formulaire et que la propriété d'AllowDrop du formulaire est définie à 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)