本人见了一个WINFORM程序,首先是在左边添加了一个TreeView控件,右边添加了一个PictureBox控件,希望拖动左边TreeView中选中的节点,在右边显示相应的图片的操作。
本人首先实在FORM_LOAD中添加了如下代码:
本人首先实在FORM_LOAD中添加了如下代码:
TreeNode groupNode1 = treeView1.Nodes.Add("分组1"); TreeNode TerminalNode1 = groupNode1.Nodes.Add("节点1"); string filePath = @"F:\壁纸图标\theDanceNeverEnd.png"; TerminalNode1.Tag = filePath; //TreeNode groupNode = treeView1.Nodes.Add("分组2"); TreeNode TerminalNode2 = groupNode1.Nodes.Add("节点2"); string filePath2 = @"F:\壁纸图标\cat.jpg"; TerminalNode2.Tag = filePath2; treeView1.ExpandAll();
这样做的话遇到的问题是,在本人处理Item_Drag响应时,selectedNode不论本人怎么选择,始终是第一个节点,
Item_Drag部分的代码如下:
private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { TreeNode node = treeView1.SelectedNode; if (node != null) { string path = (node.Tag as string); // Image showImage = (node.Tag as Image); DoDragDrop(path, DragDropEffects.All); } } }
本人猜测可能是原因是本人加载TreeView节点的代码放在了FORM_LOAD中的原因,于是本人在界面上新建了一个菜单,在菜单上按钮的相应事件中添加节点;但是这样做的话 Item_Drag中node = treeView1.SelectedNode;得到的节点反而为NULL,求指导~
解决方案
40
拖动树的节点到哪去。