次の方法で共有


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

パラメーター

  • position
    型 : Point

戻り値

型 : Point
変換された Point、p をクライアント座標で表す Point

解説

PointToClientなど、値を変換するメソッドを使用できます、DragEventArgsを返す画面座標をクライアントに、フォームの座標。

次の例で使用する方法、PointToClientを移動するメソッド、RectangleShapeイメージ ファイルをその上にドロップするとします。 PointToClientメソッドの移動、 RectangleShape [クライアント] フォームを基準にしています。 たとえば場合は、格納場所はダウン 10 ピクセルと 10 のピクセルの四角形の左上隅の右側には、四角形は、10 ピクセルの位置ダウンし、フォームの左上隅の右側に 10 ピクセルに移動します。

この例では、 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)

ライン コントロールとシェイプ コントロールの概要 (Visual Studio)