2
我有一個帶有樹視圖控件的窗體窗體。該樹視圖具有根節點和2個子節點。我的要求是我需要隱藏第一個子節點。 是否有可能使可見的虛假特定的孩子點頭如何在Treeview控件中使子節點可見= false
我有一個帶有樹視圖控件的窗體窗體。該樹視圖具有根節點和2個子節點。我的要求是我需要隱藏第一個子節點。 是否有可能使可見的虛假特定的孩子點頭如何在Treeview控件中使子節點可見= false
是的,你可以從樹節點繼承並創建自己的行爲。像這樣。
public class RootNode : TreeNode
{
public List<ChildNode> ChildNodes { get; set; }
public RootNode()
{
ChildNodes = new List<ChildNode>();
}
public void PopulateChildren()
{
this.Nodes.Clear();
var visibleNodes =
ChildNodes
.Where(x => x.Visible)
.ToArray();
this.Nodes.AddRange(visibleNodes);
}
//you would use this instead of (Nodes.Add)
public void AddNode(ChildNode node)
{
if (!ChildNodes.Contains(node))
{
node.ParentNode = this;
ChildNodes.Add(node);
PopulateChildren();
}
}
//you would use this instead of (Nodes.Remove)
public void RemoveNode(ChildNode node)
{
if (ChildNodes.Contains(node))
{
node.ParentNode = null;
ChildNodes.Remove(node);
PopulateChildren();
}
}
}
public class ChildNode : TreeNode
{
public RootNode ParentNode { get; set; }
private bool visible;
public bool Visible { get { return visible; } set { visible = value;OnVisibleChanged(): } }
private void OnVisibleChanged()
{
if (ParentNode != null)
{
ParentNode.PopulateChildren();
}
}
}
不,沒有辦法讓節點不可見。您應該將其刪除而不是隱藏。之後您將不得不將其添加回原來的位置。