投稿者 るきお  (社会人) 投稿日時 2020/9/22 18:11:46
そういうことでしたら、自分で座標を変換する関数を作成して、その都度呼び出すのが良いと思います。

下記の例では、VB(.NET)の座標系を学校座標系(左下が原点、Y軸は上方向がプラス)に変換する関数 PointToSchoolを作成し呼び出すことで、Labelに学校座標系を表示します。

Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
    Dim sp As System.Drawing.Point = System.Windows.Forms.Cursor.Position
    Dim cp As System.Drawing.Point = Me.PointToClient(sp)
    Dim schoolP As System.Drawing.Point = Me.PointToSchool(cp)
    Dim x As Integer = schoolP.X
    Dim y As Integer = schoolP.Y
    Label1.Text = "X:" & x & "Y:" & y & ""
End Sub

''' <summary> 
''' 座標を学校座標系に変換します。 
''' </summary> 
''' <returns></returns> 
Private Function PointToSchool(p As Point) As Point

    Dim x As Integer = p.X
    Dim y As Integer = Me.ClientSize.Height - p.Y
    Return New Point(x, y)

End Function


>Graphicsクラスにしか適用にならないのでしょうか?
そうなんです。最初の投稿で紹介した TranslateTransformメソッドとScaleTransformメソッドは、Graphicsクラスを使う場合にしか役に立ちません。