使用DragDrop应用程序。我有一个类对象(构建为一个对象),它有一个为DragDrop启用的GroupBox。
在我设置的类中,光标在进入组框时会发生变化,离开组框,鼠标在组框内向下并且拖放正在工作。我还在类对象中设置了一个标签,并更改了该标签中的文本。基本上,文本在标签中按预期更改,包括在拖动对象时出现'FEEDBACK'但光标仍然固执地作为指针。无论是在我调试类时,还是在构建类之后,它都是作为主程序的一部分运行时,这都是事态。
以下是班级中设置的潜艇。
Private Sub GroupBoxSourceMouseDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBoxSource.MouseDown
GroupBoxSource.DoDragDrop(GroupBoxSource.Text, DragDropEffects.Copy)
lbl1.Text = "DOWN"
End Sub
Private Sub GroupBoxSourceMouseMove(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.MouseEventArgs) Handles GroupBoxSource.MouseMove
If bolDragDropMouseDown Then
' Initiate dragging.
'GroupBoxSource.DoDragDrop(GroupBoxSource.Text, DragDropEffects.Copy)
End If
bolDragDropMouseDown = False
lbl1.Text = "MOVE"
End Sub
Private Sub GroupBoxSourceMouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBoxSource.MouseEnter
Windows.Forms.Cursor.Current = Cursors.Hand
lbl1.Text = "ENTER"
End Sub
Private Sub GroupBoxSourceMouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBoxSource.MouseLeave
Windows.Forms.Cursor.Current = Cursors.Arrow
lbl1.Text = "LEAVE"
End Sub
Private Sub GroupBoxSourceDragDropFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles GroupBoxSource.GiveFeedback
Windows.Forms.Cursor.Current = Cursors.SizeAll
lbl1.Text = "FEEDBACK"
End Sub
现在是不寻常的阶段。我决定在主程序的FormLoad(具有在表单上定义的类对象)的过程中将光标更改为手并且没有任何更改。在绝望中我设置了一个1mS的计时器并对其进行编码以将光标更改为一只手并且确定光标现在是一只手但是当我移动光标时,矩形会弹回指针,因此它看起来好像是其他东西导致了光标恢复默认值。
答案 0 :(得分:3)
您必须在GiveFeedback事件处理程序中设置e.UseDefaultCursor = False,以使光标更改可见。没有它,拖放总是使用默认游标。
鼠标悬停控件时获得的光标由Control.Cursor属性设置。更改Cursor.Current属性无效,该属性会在您移动鼠标时立即更改光标。
答案 1 :(得分:0)
要轻松更改光标,请单击表单并调出属性。然后转到Cursor并将其更改为您想要的任何内容。