Поделиться через


Shape.PointToClient - метод

Вычисляет местоположение указанной точки экрана в клиентских координатах.

Пространство имен:  Microsoft.VisualBasic.PowerPacks
Сборка:  Microsoft.VisualBasic.PowerPacks.Vs (в Microsoft.VisualBasic.PowerPacks.Vs.dll)

Синтаксис

'Декларация
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

Параметры

Возвращаемое значение

Тип: System.Drawing.Point
Объект Point, представляющий преобразованный объект Point, p, в клиентских координатах.

Заметки

PointToClient метод можно использовать для преобразования значения в виде a DragEventArgs возвращает координаты экрана, что в клиентских координат формы.

Примеры

В следующем примере демонстрируется использование PointToClient метод, чтобы переместить a RectangleShape при удалении файл изображения на него.PointToClient метод перемещает RectangleShape по отношению к форме клиента.Например, если расположение удаления 10 пикселей вниз и 10 точек справа от верхнего левого угла прямоугольника, прямоугольник будет перемещен до точки местоположения 10 и 10 пикселей вниз справа от верхнего левого угла формы.

В этом примере необходима a RectangleShape наблюдение за RectangleShape1 с именем в форме и этом AllowDrop форме назначается свойство 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;
    }
}

Безопасность платформы .NET Framework

См. также

Ссылки

Shape Класс

Microsoft.VisualBasic.PowerPacks - пространство имен

Другие ресурсы

Пошаговое руководство. Изображение линий при помощи элемента управления LineShape (Visual Studio)

Пошаговое руководство. Рисование фигур при помощи элементов управления OvalShape и RectangleShape (Visual Studio)

Знакомство с элементами управления Line и Shape (Visual Studio)