如何在不创建表单 1 的新实例的情况下在 form2 中调用 form2 的方法
本文关键字:form2 实例 情况下 方法 调用 新实例 创建 表单 | 更新日期: 2023-09-27 18:30:30
我有 2 种形式。 在表单 1 中,我有一个树视图。 在一种方法中,我得到了检查的节点列表。
private void CreateListOfCheckedNodes()
{
TreeNodeCollection nodes = TreeData.Nodes;
Int32 EffectedNodes = GetCheckedNodesCount(nodes);
if (EffectedNodes > 0)
{
;//my code
}
}
public int GetCheckedNodesCount(TreeNodeCollection nodes)
{
int CheckedNodesCount = 0;
for (int i = 0; i < nodes.Count; i++)
{
TreeNode node = nodes[i];
if (node.Checked)
{
TreeFieldSet Item = new TreeFieldSet { TreeId = Int32.Parse(node.Tag.ToString()), Title = node.Text };
MyProject.Tree.TreeCheckedNodes.TreeList.Add(Item);
CheckedNodesCount++;
}
if (node.Nodes.Count > 0)
CheckedNodesCount += GetCheckedNodesCount(node.Nodes);
}
return CheckedNodesCount;
}
如何在没有新 Form1 的情况下调用表单 2 中的方法CreateListOfCheckedNodes
?有了这个呼唤:
Tree.TreeSubjects Ts = new Tree.TreeSubjects();
Ts.CreateListOfCheckedNodes();//if CreateListOfCheckedNodes public
我得到错误!
请帮忙 !
将代码移动到两个窗体都可以访问的新类中。
如果该方法不使用任何成员变量,则可以将其设置为静态(快速浏览代码似乎表明情况确实如此)。
static class TreeNodeCollectionHelper
{
public static int GetCheckedNodesCount(TreeNodeCollection nodes)
{
...
}
}
您也可以考虑将其作为 TreeNodeCollection 类的扩展方法,但这应该谨慎进行,因为它可能会让您的同事感到惊讶。
我不完全确定我是否理解您的问题,但是如果您询问如何调用方法而不必创建类的实例,请将该方法设置为静态。