需要使用拖放事件创建日历。使用哪种控件?

时间:2015-02-04 16:36:04

标签: vb.net datagridview calendar tablelayoutpanel

我正在使用VB.Net 2012 Express

我需要创建一个具有拖放元素的日历。我将它链接到数据库,但首先我需要确定用于创建日历显示的控件。

我希望能够通过使用鼠标拖动矩形来创建事件。还可以通过拖放事件来移动事件。

我正在尝试使用tablelayoutpanel(tlp)。我可以通过编程方式创建tlp,但是当我点击时无法看到鼠标在哪个行或列中,因为它只给我X和Y但不是tablelayoutpanel行或列。

如何在鼠标按下时找出我所在的行/列,以及鼠标上的哪一行/列?或者我是否完全咆哮错误的树?

1 个答案:

答案 0 :(得分:0)

感谢OneFineDay,你让我走上了正确的道路。我转了一下,但想出了这个并且它有效:

 Private Sub Layout_Calendar_MouseDown(sender As Object, e As MouseEventArgs) Handles Layout_Calendar.MouseDown
    Dim x As Integer
    x = e.X

    Dim y As Integer
    y = e.Y

    Dim Allcolumns() As Integer
    Dim ColumnLocation As Integer
    Dim Column As Integer

    Dim Allrows() As Integer
    Dim RowLocation As Integer
    Dim Row As Integer


    'find column
    Allcolumns = Layout_Calendar.GetColumnWidths()
    ColumnLocation = 0
    Column = 0
    For Each Colwidth In Allcolumns
        ColumnLocation += Colwidth
        If x < ColumnLocation Then
            Exit For
        Else
            Column += 1
        End If
    Next


    Allrows = Layout_Calendar.GetRowHeights()
    RowLocation = 0
    Row = 0
    For Each Rowwidth In Allrows
        RowLocation += Rowwidth
        If y < RowLocation Then
            Exit For
        Else
            Row += 1
        End If
    Next

    Console.WriteLine("Column:" & Column & " Row:" & Row)

End Sub