2015-01-04 87 views
0

当我尝试用选项Strict ON优化我的代码后,我得到许多错误,至少剩下一个。Option Strict On不允许从'System.Drawing.Point'到'System.Drawing.Size'的隐式转换

我已经创建变量MoveForm_MousePosition如点 = System.drawing.point

Imports System.Drawing 
    Public MoveForm_MousePosition As Point 

Private Sub lblYaple_MouseDown(sender As Object, e As MouseEventArgs) Handles lblYaple.MouseDown 
     If e.Button = MouseButtons.Left Then 
      MoveForm = True 
      Me.Cursor = Cursors.NoMove2D 
      MoveForm_MousePosition = e.Location 
     End If 
    End Sub 
    Public Sub lblYaple_MouseMove(sender As Object, e As MouseEventArgs) Handles lblYaple.MouseMove 
     If MoveForm Then Me.Location = Me.Location + (e.Location - MoveForm_MousePosition) 
    End Sub 

在此行

如果MoveForm然后Me.Location = Me.Location +(e.Location - MoveForm_MousePosition

选项严格On不允许从“System.Draw隐式转换ing.Point”到 'System.Drawing.Size'

无法理解,me.location和e.location和MoveForm_MousePostions应 System.Drawing.Point为什么来到这个错误吗?

+0

试试这个吗? 'Me.Location = Me.Location + New Point(e.Location - MoveForm_MousePosition)' – 2015-01-04 11:15:37

回答

2

MSDN documents中可以看到,点减法运算符的RHS参数类型为Size

'LHS (point) RHS (size) 
(e.Location - MoveForm_MousePosition) 

而且正如所观察到的,您不能将点结构转换为大小结构。所以解决这个问题的方法之一是创建一个像这样的新点结构:

Me.Location = New Point(
    (Me.Location.X + (e.Location.X - MoveForm_MousePosition.X)), 
    (Me.Location.Y + (e.Location.Y - MoveForm_MousePosition.Y)) 
) 
+0

Great Thanx工作 – 2015-01-04 11:52:45

+1

@RichardDark如果它有效,那么你应该通过点击复选标记来将其从未答复的列表中删除,并确认K先生的努力。 – Plutonix 2015-01-04 12:36:04

相关问题