Перерисовать дерево в форме в другой форме - PullRequest
0 голосов
/ 07 апреля 2020

Я создал вид дерева в форме, и у меня есть другая форма, которую я хочу перерисовать в дереве точно. Я использовал конструктор, чтобы получить дерево во второй форме, но когда я показываю вторую форму, дерево не отображается. Следует отметить, что когда я получаю текст метки в первой форме, я могу точно отобразить его во второй форме, но не могу сделать это для дерева. На самом деле, я не знаю, какое свойство treeview следует использовать для его отображения? Не могли бы вы помочь мне?

Лучший

1 Ответ

0 голосов
/ 07 апреля 2020

Хорошо, вы можете передать дочерний элемент управления другому родителю, но чтобы показать его, вам нужно добавить его в коллекцию элементов управления, а также изменить свойство Parent представления дерева:

public Form2(TreeView treeView)
    : this() // default constructor calls InitializeComponent();
{
    this.Controls.Add(treeView);
    treeView.Left = 100;
    treeView.Top = 100;
    treeView.Parent = this;
}

, и будет показано дерево.

Но вас ждет сюрприз.

Вид дерева теперь исчез из первоначальной формы !!!! !.

Потому что именно так работают windows элементы управления формами.

Итак, вам нужно иметь собственный TreeView во второй форме и скопировать все значения (узлы). , по значению, а не по ссылке) и заново заполните представление дерева во второй форме.

Этот пост должен помочь:

Скопировать все родительские и дочерние элементы treeView в другой treeView c# WinForms

...