2017-09-06 4 views
2

Ich versuche zu verstehen, wie ich Dim StartingPoint/oder erstellen Sie einen Punkt throught ein trübes ohne Schreiben Sie den folgenden Code schreiben können. Der folgende Code verschiebt den Cursor auf den Offsetwert von User Controleinen Punkt zurück, ohne Dim als Punkt

Private Sub MoveToStart() 
    Dim StartingPoint = Panel1.Location()   ' Get User Control Location 
    StartingPoint.Offset(10, 10)     ' Set Cursor Point offset 
    Cursor.Position = PointToScreen(StartingPoint) ' Move the Cursor to position 
End Sub 

Ich würde es gerne entlang der Linien schreiben:

Private Sub MoveToStart() 
    Cursor.Position = PointToScreen(Panel1.Location.Offset(10, 10)) 
End Sub 

den folgenden Code: Cursor.Position = PointToScreen() mich braucht eine Rückkehr Punkt. Aber ich kann wirklich nicht herausfinden, wie man es ohne ein dim macht.

+1

'Cursor.Position = Neuer Punkt (x, y)' wenn du das meinst? Aber warum in aller Welt willst du das ohne "Dim" machen? Tatsächlich erleichtert es das Lesen, wenn Sie es verwenden ... –

+0

Machen Sie eine Funktion, die einen Punkt zurückgibt? –

+0

Warum die Notwendigkeit dafür? Weniger Linien? Das Dim erstellt in Ihrem Beispiel keinen neuen Punkt. –

Antwort

2

Das Problem, das Sie haben, ist, dass Offset() ist ein Unterprogramm, das keinen Wert zurück, sondern ändert sich stattdessen die Werte des Ziel

Wenn Sie es in einer Zeile wirklich, können Sie dies tun, ohne Offset wie folgt aufrufen:

Private Sub MoveToStart() 
    Cursor.Position = New Point(PointToScreen(Panel1.Location()).X + 10, PointToScreen(Panel1.Location()).Y + 10) 
End Sub 
0

Mit etwas Hilfe von Reddit bekam ich eine andere Antwort Reset Cursor Reddit.

Private Sub MoveToStart() 
    Cursor.Position = PointToScreen(Panel1.Location) 
    Cursor.Position.Offset(10,10) 
End Sub