我有一個自我創建的日曆程序,我遇到了問題。我添加了一個選擇範圍選項,它依靠一個拖動事件來選擇一個範圍。放在運行時創建的控件
如果我在設計器中創建兩個標籤,我可以將數據從一個拖到另一個,沒有任何問題。我遇到的問題是我無法拖到我在運行時創建的控件上。我可以從一個拖動,但不能拖動到一個。
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。