2016-08-06 35 views
0

Ich habe die anderen SO-Antworten auf ähnliche Fragen überprüft und keine sind diesem Problem ähnlich..Net Windows Forms Drag-Drop-Klasse-Daten nicht abrufen können

Ich mache einen DragDrop von einem Formular zum anderen innerhalb der gleichen Anwendung. Ich überprüfe, dass die Empfangsform (wo der Abfall auftritt) wird die korrekten Daten wie folgt erhalten:

private void editor_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
{ 
if (e.Data.GetDataPresent(typeof(ComponentModel))) 
    { 
    e.Effect = DragDropEffects.Copy; 
    Log("Component Model Data is Present"); 
    } 
else 
    Log("Component Model Data is NOT Present"); 
} 

Die ComponentModel Daten vorhanden sind. Das Komponentenmodell ist eine Klasse, die in der Tag-Eigenschaft des gezogenen Benutzersteuerelements enthalten ist.

Allerdings kann ich keine Möglichkeit finden, die tatsächlichen ComponentModel Daten zu erhalten. Wenn ich das Debuggen verwenden kann ich es durch nicht-öffentliche Methoden erhalten - so weiß ich die Daten gibt es ...

Frage Wie kann ich die Daten innerhalb der ComponentModel Klasse zugreifen?

Antwort

0

Es stellt sich heraus, dass dies, wie Sie auf die Daten zugreifen:

if (e.Data.GetDataPresent(typeof(ComponentSelectionControl))) 
      { 
       var csc = e.Data.GetData("IDA.Controls.ComponentSelectionControl"); 
       e.Effect = DragDropEffects.Copy; 
       Log("Component Model Data is Present"); 


      } 
      else 
       Log("Component Model Data is NOT Present"); 

So verwende ich einfach GetData mit einer Zeichenfolge, die den Fully Qualified Steuerung enthält, fallen gelassen wird. Ich kann dann wie gewohnt auf die Tag-Eigenschaft zugreifen.