2015-01-27 2 views
0

У меня есть основная форма и древовидная структура. Я добавляю родительские узлы в treeview, нажимая кнопку.Добавить дочерние узлы в TreeView с использованием параметров из другой формы в C#

 SegmentTreeView.BeginUpdate(); 
     SegmentTreeView.Nodes.Add(SegmentNameTextBox.Text); 
     SegmentTreeView.SelectedNode = SegmentTreeView.Nodes[0]; 
     SegmentTreeView.ExpandAll(); 
     SegmentTreeView.EndUpdate(); 

У меня есть форма, например, FormB-, которая отображается нажатием кнопки на главной форме. На FormB есть комбинация и кнопка. Когда я нажал кнопку «ОК» в FormB, мне нужно создать дочерние узлы в выбранном узле дерева в соответствии с выбором combobox на FormB. Например, если Index0 выбран в comboBox FormB и щелкнул «ОК», мне нужно создать один дочерний узел под родительским узлом, который был создан ранее. Если выбран индекс 1, два дочерних узла и т. Д.

Я пробовал несколько способов. Тем не менее, myForm.SegmentTreeView.SelectedNode.Nodes.Add (newNode); всегда возвращает NULL. Таким образом, он дает ошибку при добавлении.

Пожалуйста, помогите решить проблему.

ответ

0

Вы можете сделать это, создав свойство геттера на FromB, которое вы можете указать в FormA после того, как FormB был показан.

Пример:

На FormB добавьте свойство геттер, который выглядит примерно так:

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; 
      } 
     } 
    } 
    } 
} 
Смежные вопросы