Laden...

Drag Drop von verschiedenen TreeView's

Letzter Beitrag vor 4 Monaten 5 Posts 297 Views
Drag Drop von verschiedenen TreeView's

Hallo,

ich möchte ein unterschiedliche Spalten eines DatagridView mittels Drag-Drop von verschiedenen Treeview's aktualisieren. Dafür benötige ich den Namen des Quell-TreeView's. Jedoch ist "treeView" immer "null". Was mache ich falsch?

Grüße

Steffen Eger

private void Dgv_DragDrop(object sender, DragEventArgs e)
  {
          var treeView = (TreeView)e.Data.GetData(typeof(TreeView));
          var treeViewName = treeView.Name;
  }

Was übergibst du denn bei DoDragDrop als ersten Parameter?


PS: Du hast im falschen Subforum gepostet - evtl. verschiebt es aber ein Moderator nach "Windows Forms".

Edit: Danke.

Mit DragDrop übergebe ich:

private void Trv_ItemDrag(object sender, ItemDragEventArgs e)
{
   DoDragDrop(e.Item, DragDropEffects.Move);
}

Du übergibst dort doch mit e.Item ein TreeNode(und kein TreeView-Objekt), d.h. du mußt dann auch

TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode));

verwenden (s.a. Beispiel von TreeView.ItemDrag). Und mit dessen TreeView -Eigenschaft kannst du dann auf dessen Eigenschaften zugreifen.

Edit:

Oder aber du übergibst direkt sender, wenn du nur an dem TreeView-Objekt interessiert bist.

PS: Das enthaltene Objekt kannst du auch direkt im Debugger anschauen: [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Hallo, vielen Dank für den Tipp. Ich hab's gelöst:

private void Dgv_DragDrop(object sender, DragEventArgs e)
{
    TreeNode draggNode = (TreeNode)e.Data.GetData(typeof(TreeNode));
    int id_treeview = Convert.ToInt32(draggNode.Tag.ToString());
    string treeViewName = draggNode.TreeView.Name;
 }