我有一个自我创建的日历程序,我遇到了问题。我添加了一个选择范围选项,它依靠一个拖动事件来选择一个范围。放在运行时创建的控件
如果我在设计器中创建两个标签,我可以将数据从一个拖到另一个,没有任何问题。我遇到的问题是我无法拖到我在运行时创建的控件上。我可以从一个拖动,但不能拖动到一个。
Private Sub SetupMonths()
Dim dayNo As Integer
For monthNo As Integer = 0 To 11
grpMonth(monthNo) = New GroupBox
grpMonth(monthNo).Text = MonthName(monthNo + 1)
Me.pnlCalendar.Controls.Add(grpMonth(monthNo))
For dayY = 0 To 4
For dayX = 0 To 6
dayNo = dayX + dayY * 7
lblDay(monthNo, dayNo) = New Label
lblDay(monthNo, dayNo).Font = Me.lblDayFont.Font
lblDay(monthNo, dayNo).Text = dayNo
lblDay(monthNo, dayNo).BorderStyle = BorderStyle.FixedSingle
grpMonth(monthNo).Controls.Add(lblDay(monthNo, dayNo))
AddHandler lblDay(monthNo, dayNo).MouseDown, AddressOf DayDrag
AddHandler lblDay(monthNo, dayNo).DragOver, AddressOf DayOver
AddHandler lblDay(monthNo, dayNo).DragDrop, AddressOf DayDrop
Next
Next
Next
End Sub
Private Sub DayDrag(ByVal sender As Label, ByVal e As System.Windows.Forms.MouseEventArgs)
Debug.WriteLine("Start draging " & dayDragFrom)
sender.DoDragDrop(sender.Tag, DragDropEffects.Copy)
Debug.WriteLine("End")
End Sub
Private Sub DayOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
Debug.WriteLine("Over")
If (e.Data.GetDataPresent(DataFormats.Text)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub DayDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
Debug.WriteLine("Drop")
' More code will go here
End Sub
“DayDrag”处理程序正在添加罚款,并触发正常。我可以将其中的一个拖放到设计器中创建的控件中。然而,“白天”和“白天”操作员似乎没有附加,因此我不能拖到他们身上。
对任何暗示打开,
很多谢谢。
Mat。