需要创建带有拖放事件的日历。使用哪个控件?
Need to create a calendar with drag and drop events. Which control to use?
我正在使用 VB.Net 2012 Express
我需要创建一个包含拖放元素的日历。我会将它链接到数据库,但首先我需要确定使用哪个控件来创建日历显示。
我希望能够通过用鼠标拖动一个矩形来创建事件。也可以通过拖放事件来移动事件。
我正在尝试使用表格布局面板 (tlp)。我可以通过编程方式创建 tlp,但看不到如何在我单击时判断鼠标在哪一行或哪一列,因为它只给我 X 和 Y 而不是 tablelayoutpanel 行或列。
如何找出我在按下鼠标时处于哪个 row/column 以及在鼠标松开时处于哪个 row/column?还是我完全找错树了?
感谢 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
我正在使用 VB.Net 2012 Express
我需要创建一个包含拖放元素的日历。我会将它链接到数据库,但首先我需要确定使用哪个控件来创建日历显示。
我希望能够通过用鼠标拖动一个矩形来创建事件。也可以通过拖放事件来移动事件。
我正在尝试使用表格布局面板 (tlp)。我可以通过编程方式创建 tlp,但看不到如何在我单击时判断鼠标在哪一行或哪一列,因为它只给我 X 和 Y 而不是 tablelayoutpanel 行或列。
如何找出我在按下鼠标时处于哪个 row/column 以及在鼠标松开时处于哪个 row/column?还是我完全找错树了?
感谢 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