2015-02-04 6 views
0

VB.Net 2012 Express를 사용 중입니다.끌어서 놓기 이벤트가있는 달력을 만들어야합니다. 어떤 컨트롤을 사용해야합니까?

드래그 앤 드롭 요소가있는 달력을 만들어야합니다. 나는 그것을 데이터베이스에 링크 할 것이지만 먼저 일정 표시를 생성하는 데 사용할 컨트롤을 찾아야합니다.

마우스로 사각형을 드래그하여 이벤트를 만들 수 있기를 원합니다. 또한 이벤트를 드래그 앤 드롭하여 이벤트를 이동합니다.

나는 tablelayoutpanel (tlp)을 사용하려고합니다. 프로그래밍 방식으로 tlp를 만들 수 있지만 클릭 할 때 마우스가있는 행이나 열을 나타내는 방법을 볼 수 없습니다. X 및 Y 만 제공하지만 tablelayoutpanel 행이나 열은 제공하지 않습니다.

마우스가 눌려 졌을 때의 행/열과 마우스가 올라간 행/열을 어떻게 확인할 수 있습니까? 아니면 내가 틀린 나무를 완전히 짖고 있니?

+0

'GDI +'내가 마우스 이벤트와 X와 Y를 얻는 방법을 볼 수 있지만 행 또는 열을? – OneFineDay

+0

와 – DovesandChicks

+0

매일 Rectangle이 될 것이고 마우스 클릭을'Rectangle.Contains (e.x, e.y)'로 체크 할 수 있습니다. 조건이있는 루프의 경우 행/열에 배치 할 책임이 있습니다. – OneFineDay

답변

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 
마우스 이벤트