我正在使用VB.Net 2012 Express
我需要创建一个具有拖放元素的日历。我将它链接到数据库,但首先我需要确定用于创建日历显示的控件。
我希望能够通过使用鼠标拖动矩形来创建事件。还可以通过拖放事件来移动事件。
我正在尝试使用tablelayoutpanel(tlp)。我可以通过编程方式创建tlp,但是当我点击时无法看到鼠标在哪个行或列中,因为它只给我X和Y但不是tablelayoutpanel行或列。
如何在鼠标按下时找出我所在的行/列,以及鼠标上的哪一行/列?或者我是否完全咆哮错误的树?
答案 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