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;
}