我在程序中使用了Windows Forms TreeView控件。我希望允许用户通过拖动鼠标指针来选择同一级别的多个节点(也称为“套索”选择)。我不认为一个标准的TreeView允许这样做。
我的问题是,实现这一目标的最佳方式是什么?我是否必须在自定义控件或派生控件中编写自己的自定义选择行为?我该从哪里开始呢?
我不需要详细的解释。只是在正确的方向上的一个小小的推动。
我有这个密码
tree match {
case EmptyNode =>
//do stuff with empty node
case Node(left, right, value) =>
//do stuff with node contents
}
但是,如果我想更新节点的值怎么办?我尝试在情况下执行value = newValue,但似乎不允许这样做。
树/节点的结构:
sealed trait Tree
case class Node(var left:
如何在JS中创建类似树的数据结构,在JS中,我可以访问引用父节点、基于id的节点查找、访问子节点的长度(数目)、基于索引的查找等?
这基本上就是我所设想的API:
var rootNode = DataStructure.getRoot();
var child1 = rootNode.addNode('child1'); //added a node with id 'child1'
child1.addNode('innerChild1');
child1.addNode('innerChild2');
rootNode.ge
有一棵树:根-VirtualStringTree(你看不到它,TVirtualStringTree.RootNode)
我的根节点1
我的根节点2
第二节点1
第二节点2
第二节点3
我的根节点3
我可以将‘n’下拉“我的根节点3”到任何可见节点,但我不能返回到故障位置,树的根级别。
我试着说:
//Part of code from OnDragDrop Event of VirtualStringTree
if (Sender.DropTargetNode = Sender.RootNode) then
begin
无论何时刷新,节点的顺序都不同。,你怎么能使它在每次刷新时顺序是相同的呢?--也许是顶部的“子节点1”,然后与右边相邻的是“子节点2",等等。除此之外,这个例子适用于我需要实现的目标。
下面的解决方案似乎需要将节点固定到x,y点。但是这样做似乎消除了拖动功能(节点需要被拖到不同的位置以更改顺序)。而且,我并不总是知道最初会有多少个节点。
虽然拖动是必需的,但动画不是。我试着看看停止动画是否有任何效果,但它没有。
var n = 50;
for (var i = 0; i < n; ++i) force.tick();
force.stop();
此外,还试图在数据中添加