Option Strict On不允许从'System.Drawing.Point'到'System.Drawing.Size'的隐式转换
当我尝试用选项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为什么来到这个错误吗?
从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))
)
Great Thanx工作 – 2015-01-04 11:52:45
@RichardDark如果它有效,那么你应该通过点击复选标记来将其从未答复的列表中删除,并确认K先生的努力。 – Plutonix 2015-01-04 12:36:04
试试这个吗? 'Me.Location = Me.Location + New Point(e.Location - MoveForm_MousePosition)' – 2015-01-04 11:15:37