1

在下面的代码中有一个错误,如下所示:

正在从错误的线程调用对此控件执行的操作。使用 Control.Invoke 或 Control.BeginInvoke 编组到正确的线程以执行此操作。

在添加childNode()方法中。我们在执行此操作时收到此错误this.Nodes.Insert(pos, oPart);。你能帮我解决这个问题吗?

public Part GetChildPart(string sKey)
{
    foreach (TreeNode node in this.Nodes)
    {
        Part child = node as Part;
        if (child.Text == sKey) return child;

    }

    //Part Opart = new Part();
    //Opart.Text = sKey;
    //return Opart;

     return null;
} 
public bool AddChildPart(Part oPart)
{
    int pos = 0; // Use for alpha sorted the node

    foreach (TreeNode node in this.Nodes)
    {
        if (node.Tag.ToString() == oPart.Tag.ToString())
        {
            // Avoid duplicate data
            return false;
        }
        else
        {
            if (node.Tag.ToString().CompareTo(oPart.Tag.ToString()) < 0)
            {
                pos++;
            }
        }
    }

    //if (this.TreeView.InvokeRequired)
    //    {
    //        this.TreeView.Invoke((MethodInvoker)delegate()
    //             {
    //                 //inTreeNode.Nodes.Add(tNode2);
    //                 this.Nodes.Insert(pos, oPart//            
    }
    //             );
    //}

    //this.Nodes.Add(oPart);
    this.Nodes.Insert(pos, oPart);--error is here

    //TreeView.Nodes.
    return true;
}

提前致谢!

4

0 回答 0