0
新しいNodeオブジェクトを作成してコレクションに追加しています。コレクションにオブジェクトを追加するのに時間がかかります
Nodes.Add(n);
アドオンは永遠に取るようにデバッガがちょうどそこに座っ:
問題は、それがコードの行に当たったときにということです。私が歩いて30分後に戻ってBreak Allを押すと、まだノードが追加されます。
これはどうして起こるのでしょうか?コード
private void showAddNodeDialog(string strNodeType)
{
if (tvwNodes.SelectedNode != null)
{
Node Node = null;
using (ENIEntities context = ENIEntities.ConnectToSqlServer(ENI.Data.Configuration.ConnectionString))
{
Node = context.Nodes.Find((Int32)tvwNodes.SelectedNode.Value);
}
frmNewNode frm = new frmNewNode(Node.NodeID, strNodeType);
frm.NodeAdded += Node_Added;
frm.ShowDialog();
if (frm.copiedChildren)
{
LoadTree();
}
loadControls();
tvwNodes.SelectedNode = GetAddedNode(tvwNodes.Nodes, Node.NodeID);
tvwNodes.SelectedNode.Expand();
tvwNodes.SelectedNode.EnsureVisible();
frm.NodeAdded -= Node_Added;
frm.Dispose();
//frmNewDocument frm = new frmNewDocument(Convert.ToInt32(tvwNodes.SelectedNode.Value), strDocumentType);
//frm.ShowDialog();
//loadControls();
}
else
MessageBox.Show("You Must Select a Node to Add to");
}
'Node_Added'はある種のイベントハンドラですか? – Enigmativity
はい。別のフォームがロードされてノードが作成されます。ノードが作成されると、 – Muckeypuck
が呼び出されます。 'Nodes.Add(n);'は 'Node_Added'を呼び出して終了し、再帰呼び出しを持つ可能性はありますか? – Enigmativity