■45232 / inTopicNo.1) |
継承TreeNodeのDrag&Drop処理について |
□投稿者/ neko (1回)-(2010/01/06(Wed) 20:58:25)
|
分類:[C#]
TreeViewのTreeNodeに情報を追加したノードを使用しています。こんな感じです。
public class TreeNodeEx : TreeNode
{
private bool isFlag;
// 略(実際はもう少しあります)
}
それで
http://support.microsoft.com/kb/307968/ja
を参考にドラッグ&ドロップに対応させたのですが、
普通のTreeNodeなら上手くいきましたが上記のTreeNodeExでは
DestinationNode.Nodes.Add()で登録されません。
private void treeView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
TreeNodeEx NewNode;
if(e.Data.GetDataPresent("Test.TreeNodeEx", false)) {
Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
TreeNodeEx DestinationNode = (TreeNodeEx)((TreeView)sender).GetNodeAt(pt);
NewNode = (TreeNodeEx)e.Data.GetData("Test.TreeNodeEx");
if(DestinationNode.TreeView != NewNode.TreeView)
{
DestinationNode.Nodes.Add((TreeNodeEx) NewNode.Clone());
DestinationNode.Expand();
//Remove Original Node
NewNode.Remove();
}
}
}
こういう使い方はできないものなんでしょうか?
|
|