我有一个约30张图像的图像列表,当TreeNode处于特定状态时,我希望能够覆盖30个图像的3个图像.我知道C++ TreeItem可以使用TVIS_OVERLAYMASK这样做:
SetItemState(hItem,INDEXTOOVERLAYMASK(nOverlayIndex), TVIS_OVERLAYMASK);
Run Code Online (Sandbox Code Playgroud)
是否有任何机制可以在.NET中实现类似的结果?
是否可以使 TreeNodes(即文件夹)可由用户编辑?我看到 TreeNode 类中有一个名为 editable 的选项,但我无法让它工作或找到任何有关其用法的示例。
我的另一个任务是在节点中放置一个输入框,以便用户可以为每个项目输入数字。我该怎么做?
之前我曾问过在重命名TreeNode时如何触发事件(这里).我的问题得到了回答,但我遇到了另一个问题.我需要在CellEditorListener的editingStopped事件中访问正在编辑的TreeNode.这是我必须这样做的代码:
package com.gamecreator;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.tree.DefaultTreeCellEditor;
public class CustomCellEditorListener implements CellEditorListener {
public CustomCellEditorListener() {
}
public void editingCanceled(ChangeEvent e) {
}
public void editingStopped(ChangeEvent e) {
DefaultTreeCellEditor editor = (DefaultTreeCellEditor) e.getSource(); //This gives me the error.
CustomTreeNode node = //What do I put here???;
node.getResource().setName((String) node.getUserObject());
//For debugging
System.out.println(node.getResource().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
异常的线程 "AWT-EventQueue的-0" java.lang.ClassCastException:javax.swing.tree.DefaultTreeCellEditor中的$ 1不能转换为javax.swing.tree.DefaultTreeCellEditor中
编辑:在另一次尝试中,我在CustomCellEditorListener中使用了此代码
public void editingStopped(ChangeEvent e) {
TreePath path = ((CustomTreeCellEditor) e.getSource()).getLastPath(); //This gives me the error.
CustomTreeNode node …Run Code Online (Sandbox Code Playgroud) 我正在玩原生的javascript.我基本上是在练习基本的节点操作 - 添加,删除,移动,复制和创建.
在测试移动时,我遇到了一个问题.
如果你看看上面的jsfiddle,我使用了"appendChild".为什么它将一个节点移动到一个新的div?我知道如果我想复制一个节点,我需要克隆一个节点.使用"appendChild"命令它看起来不合适.
这是预期的行为吗?
我的任务是计算每个节点的深度并将其存储在 Node 类中给出的“深度”中。但我不知道应该如何完成这项任务。我正在互联网上寻找一些示例,但没有找到适合我的任务的示例。这是我给定的 Node 类的代码:
Node
{int value; Node left, right; int depth;}
Run Code Online (Sandbox Code Playgroud)
我以为我可以使用类似的方法来计算树的高度,但没有成功。有什么帮助吗?
我有treeview一些节点.在某些情况下,我想为每个节点着色不同的颜色及其子节点.我编写了一个为节点及其子节点着色的函数.
有谁请让我知道有没有可能我Color.Green作为一个变量,以至于我不会为每种颜色写出整个函数?我的意思是作为函数中的输入参数.
这是功能:
public void ColorChild(TreeNode nodes, int indx)
{
foreach (TreeNode node_tmp in nodes.Nodes[indx].Nodes)
{
System.Drawing.Color = Green;
node_tmp.ForeColor = color;
foreach (TreeNode node_tmp2 in node_tmp.Nodes)
{
node_tmp2.ForeColor = Color.Green;
foreach (TreeNode node_tmp3 in node_tmp2.Nodes)
{
node_tmp3.ForeColor = Color.Green;
foreach (TreeNode node_tmp4 in node_tmp3.Nodes)
{
node_tmp4.ForeColor = Color.Green;
foreach (TreeNode node_tmp5 in node_tmp4.Nodes)
{
node_tmp5.ForeColor = Color.Green;
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 树节点可以同时是根节点和叶节点吗?如果是这样,为什么?
据我了解,根节点位于树的第 0 层。我还了解叶节点是没有子节点的树节点。因此,如果一棵树只有一个根节点A而没有其他节点,那么该根节点A是否也被视为叶节点?
一个树节点是否可以既是根节点又是叶节点?
我试图制作我的自定义TTreeNode类
例如
TCustomTreeNode = class(TTreeNode)
private
public
Comment:string;
end;
Run Code Online (Sandbox Code Playgroud)
我在树视图中创建并添加节点,如下所示:
var
NewCustomTreeNode:TCustomTreeNode;
begin
NewCustomTreeNode:= TCustomTreeNode.Create(TreeView.Items);
NewCustomTreeNode.Comment:='blqblq';
TreeView.Items.AddChild(NewCustomTreeNode,'NodeText');
Run Code Online (Sandbox Code Playgroud)
当我尝试访问自定义创建的树节点时会弹出错误.例如,我喜欢这样:
TCustomTreeNode(TreeNode).Comment:='asdadssadas';
Run Code Online (Sandbox Code Playgroud)
请帮助
我有一个问题,这里也有描述。
我invertExpand在MyTree课堂上有这样的方法:
public void invertExpand(DefaultMutableTreeNode node) {
TreePath path = new TreePath(node.getPath()); // no better way to get TreePath from TreeNode :(
if (!isExpanded(path)) {
expandPath(path);
} else {
collapsePath(path);
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是isExpanded()方法使用HashMap来存储扩展路径。新创建的似乎isExpanded()永远不会返回。(但它们确实被扩展了)trueTreePath
有什么办法可以解决这个问题吗?