2009-09-19 2 views
0

Ниже приведен мой код для попытки перетащить карту из окна изображения на панель, но это не сработает. Кто-нибудь может помочь мне. Когда вы нажимаете на карту и пытаетесь ее переместить, курсор меняется (например, когда вы выбираете текст и перемещаете его), но карта не перемещается, и она не отображается, когда вы бросаете ее на панель.Перетащите карту, используя метод DragDrop.

private void Card_MouseDown(object sender, MouseEventArgs e) 
{ 
     Card.Card source = (Card.Card)(sender); 
     DoDragDrop(source,DragDropEffects.Move); 
} 
private void panel1_DragEnter(object sender, DragEventArgs e) 
{ 
     if (e.Data.GetDataPresent(typeof(Card.Card))) 
     { 

      e.Effect = DragDropEffects.Move; 
     } 
     else 
     { 
      e.Effect = DragDropEffects.None; 
     } 
} 
private void panel1_DragDrop(object sender, DragEventArgs e) 
{ 
      Card.Card dragCard = (Card.Card)sender; 
      dragCard = (Card.Card)e.Data.GetData(typeof(Card.Card)); 

} 
+0

Какова ваша конкретная проблема? –

ответ

1

Ваш код содержит изменения в указателе мыши. Когда карта отбрасывается, вы получаете только карточку, а затем ничего не делаете с ней в своем коде - вот почему ничего не происходит.

+1

Другими словами, механизм перетаскивания в .Net _only_ содержит достаточно метаданных перетаскивания, чтобы указать, что это то, чего хотел пользователь. _You_ должен делать все остальное, в том числе рисовать карту, перемещать ее с помощью мыши при ее перемещении, удалять ее из старого местоположения и рисовать ее в новом месте (после капли). –

+0

Да, что он сказал :) – configurator