我有一个主要表格和树视图。 我通过单击按钮将父节点添加到树视图中。
SegmentTreeView.BeginUpdate();
SegmentTreeView.Nodes.Add(SegmentNameTextBox.Text);
SegmentTreeView.SelectedNode = SegmentTreeView.Nodes[0];
SegmentTreeView.ExpandAll();
SegmentTreeView.EndUpdate();
我有一个表格 - 表示FormB-,通过单击主表单上的按钮显示。 FormB上有一个组合框和一个按钮。当我在FormB上单击“确定”按钮时,我需要根据FormB上组合框的选择在树的选定节点下创建子节点。 例如,如果在FormB的comboBox上选择了Index0并单击“确定”,我必须在之前创建的父节点下创建一个子节点。如果选择了index1,则有两个子节点,依此类推。
我尝试了几种方法。然而,myForm.SegmentTreeView.SelectedNode.Nodes.Add(newNode);总是返回NULL。因此,它在添加时会出错。
请帮助解决问题。
答案 0 :(得分:0)
您可以在FromB
上创建一个getter属性,在FormA
显示后可以在FormB
中引用该属性。
示例:
在FormB
上,添加一个类似于此的getter属性:
public int UserSelection
{
get { return combobox.SelectedIndex(); }
}
还可以使用OK
按钮将DialogResult值设置为OK
DialogResult = System.Windows.Forms.DialogResult.OK;
然后在FormA
上,您调用表单并按如下方式使用它:
private void someButton_Click(object sender, EventArgs e)
{
using (FormB newForm = new FormB())
{
if (newForm.ShowDialog(this) == DialogResult.OK)
{
switch (newForm.UserSelection)
{
case 0:
{
// Add one node
break;
}
case 1:
{
// Add two nodes
break;
}
case 2:
{
// Add x nodes, etc
break;
}
}
}
}
}