2009-11-17 5 views
3

Nous avons un contrôle ListView qui déclenche la méthode DoDragDrop. Nous avons un autre contrôle qui est un contrôle TreeView qui a une méthode DragDrop. Le problème est que le paramètre expéditeur de la méthode DragDrop n'est pas le ListView, malgré le fait que ListView a initié la méthode DoDragDrop. Au lieu de cela, l'expéditeur est le TreeView lui-même. Des idées pour lesquelles l'expéditeur est incorrect?C# Glisser-déposer entre deux contrôles différents

+1

Il est parce que le paramètre de l'expéditeur est de faire avec le contrôle qui a envoyé l'événement (à savoir le TreeView) pas qui a commencé la chute de la traînée. – tyranid

Répondre

1

Amar,

comme Tyranides a déclaré l ' « émetteur » est le contrôle qui a déclenché l'événement. Ce contrôle n'est jamais le contrôle qui a commencé le drag mais le contrôle qui a accepté le drag.

Un exemple:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication2 
{ 
    /// <summary> 
    /// There's button 1 and button 2... button 1 is meant to start the dragging. Button 2 is meant to accept it 
    /// </summary> 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     /// <summary> 
     /// This is when button 1 starts the drag 
     /// </summary> 
     private void button1_MouseDown(object sender, MouseEventArgs e) 
     { 
      this.DoDragDrop(this, DragDropEffects.Copy); 
     } 

     /// <summary> 
     /// This is when button 2 accepts the drag 
     /// </summary> 
     private void button2_DragEnter(object sender, DragEventArgs e) 
     { 
      e.Effect = DragDropEffects.Copy; 
     } 


     /// <summary> 
     /// This is when the drop happens 
     /// </summary> 
     private void button2_DragDrop(object sender, DragEventArgs e) 
     { 
      // sender is always button2 
     } 

    } 
} 
Questions connexes