2013-01-02 43 views
0

有人可以告訴我如何從devexpress中的gridcontrol和schedulercontrol之間拖放數據?我想從網格中拖動數據並將其放到調度程序中。演示中的devexpress示例不適用於我。我只是得到一個塊符號。在xtragrid和Scheduler之間拖放

關於

+0

您有更好的機會了解爲什麼該演示對您不起作用,而不是從頭開始爲您編寫此代碼。提示'你到目前爲止嘗試了什麼'和'發佈你的代碼'的評論.... –

回答

1

我明白了。

private void grdGrid_MouseDown(object sender, MouseEventArgs e) 
     { 
      posImGrid = null; 

      GridHitInfo hitInfo = grvView.CalcHitInfo(new Point(e.X, e.Y)); 

      if (Control.ModifierKeys != Keys.None) 
      { 
       return; 
      } 

      if ((e.Button == System.Windows.Forms.MouseButtons.Left) && 
       (hitInfo.InRow) && 
       (hitInfo.HitTest != GridHitTest.RowIndicator)) 
      { 
       posImGrid = hitInfo; 
      } 
     } 

     private void grdGrid_MouseMove(object sender, MouseEventArgs e) 
     { 
      if ((e.Button == System.Windows.Forms.MouseButtons.Left) && 
       (posImGrid != null)) 
      { 
       Size dragSize = SystemInformation.DragSize; 
       Rectangle dragRect = new Rectangle(new Point(posImGrid.HitPoint.X - dragSize.Width/2, 
                  posImGrid.HitPoint.Y - dragSize.Height/2), dragSize); 

       if (!dragRect.Contains(new Point(e.X, e.Y))) 
       { 
        grvView.GridControl.DoDragDrop(GetDragData(grvView), DragDropEffects.All); 
        posImGrid = null; 
       } 
      } 
     } 

     private SchedulerDragData GetDragData(GridView view) 
    { 
     Appointment termin = Storage.CreateAppointment(AppointmentType.Normal); 
     clsMeineKlasse tempObjekt = (clsMeineKlasse)grvView.GetFocusedRow(); 
     termin.Description = tempObjekt.Beschreibung; 
     termin.Subject = tempObjekt.Bezeichnung; 
     termin.Duration = TimeSpan.FromHours(8); 

     SchedulerDragData sdd = new SchedulerDragData(termin); 

     return sdd; 
    }