在下面的代码中出现了错误,如下所示:
正在从错误的线程调用正在对此控件执行的操作。使用Control.Invoke或Control.BeginInvoke对正确的线程进行Marshal来执行此操作。
在添加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;
}
提前致谢!