获取树视图的所有已检查节点

时间:2016-06-14 07:07:32

标签: c# .net linq

我有一个包含许多节点和许多子节点和下降节点的树视图。 我想通过单击树视图找到已检查的节点。 然后我写了下面的代码:

internal static IEnumerable<TreeNode> Descendants(this TreeNodeCollection tNode) 
{
    foreach (var node in tNode.OfType<TreeNode>())
    {
        yield return node;

        foreach (var child in node.Nodes.Descendants())
        {
            yield return child;
        }
    }
}

var selectedNodes = treeView1.Nodes.Descendants()
                    .Where(n => n.Checked)
                    .Select(n => n.Text)
                    .ToList();

但我有以下错误:

  

错误CS1106:扩展方法必须在非泛型静态类中定义

顺便提一下,我应该提到这个错误是public partial class Form1 : Form

请您告诉我问题在哪里?

1 个答案:

答案 0 :(得分:0)

SEPARATE 静态类(非嵌套)中编写扩展方法。将另一个文件添加到项目中,并在其中创建一个静态类,其中包含静态扩展方法。

您的问题中的错误(以及您尝试将其添加到嵌套类中的错误)应该是不言自明的