【发布时间】:2016-06-14 07:07:31
【问题描述】:
我有一个包含许多节点和许多子节点和下降节点的树视图。 我想通过单击树视图找到选中的节点。 然后我写了如下代码:
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的。
请告诉我问题出在哪里?
【问题讨论】:
-
它明确提到你的
Extension方法必须在static类中 -
@Chaitanya 你的意思是 Form1: Form 吗?
-
我不得不猜测,因为您没有在问题中指定。尝试在单独的类中实现您的
extension方法。也许它可以解决您的问题 -
@Chaitanya 我已经更新了我的问题并提到了错误在哪里。
-
添加一个新的
Class文件并创建该类static并添加您的Extension方法。public static class TreeViewHelper { publi static IEnumerable<TreeNode> Descendants(this TreeNodeCollection tNode) { //your code }