我的意思是在 StatusStripLabel 上显示所有子节点的数量。我的观点是,我希望 StatusStripLabel 每次更改子节点的数量时都得到更新——我将添加或删除一些已经存在的节点。首先,我将代码放入 中Public Form
,但它没有按我预期的那样工作。一段时间后,我想到了一个实际可行的想法:我将代码放在按钮方法中。但在那之后我意识到我需要把它放在第二位,以防删除节点。所以我的问题是:有什么可以让它更简单的吗?如果我的解释还不够,请告诉我,我会尽力而为。
代码来自Public Form
(因为我希望该计数器从一开始就工作,而不是在我按下按钮之后)
childNodeCounter();
toolStripStatusLabel1.Text = "Number of games in database: " + NodeCounter.ToString();
方法:
public void childNodeCounter()
{
NodeCounter = 0;
foreach (TreeNode RootNode in treeView1.Nodes)
{
foreach (TreeNode ChildNode in RootNode.Nodes)
{
NodeCounter++;
}
}
toolStripStatusLabel1.Text = "Number of games in database: " + NodeCounter.ToString();
}
按钮方法内的代码:
private void button1_Click(object sender, EventArgs e)
{
NodeCounter = 0;
foreach (TreeNode RootNode in treeView1.Nodes)
{
foreach (TreeNode ChildNode in RootNode.Nodes)
{
NodeCounter++;
}
}
toolStripStatusLabel1.Text = "Number of games in database: " + NodeCounter.ToString();
}
编辑:感谢先生。Hans Passant 我写了这个,效果很好:
public int childNodeCounter(TreeNodeCollection nodes)
{
int count = 0;
foreach (TreeNode RootNode in nodes)
{
foreach (TreeNode ChildNode in RootNode.Nodes)
count++;
}
return count;
事件处理程序如下所示:
toolStripStatusLabel1.Text = "Number of games in database: " + childNodeCounter(treeView1.Nodes);