在表单之间传递一个二叉搜索树

本文关键字:一个 搜索树 之间 表单 | 更新日期: 2023-09-27 18:04:21

我目前正试图访问我在form2中创建的form1中的二叉搜索树。第一个表单的代码是:

public Home() {
    InitializeComponent();
}
AddArtist secondForm = new AddArtist();
BSTree<Artist> ArtistCollection = new BSTree<Artist>();
private void btnAdd_Click(object sender, EventArgs e) {
    secondForm.ShowDialog();
}
第二个表单的代码是:
private void btnDone_Click(object sender, EventArgs e) {
    string artistName = txtName.Text;
    Artist newArtist = new Artist(artistName);
    ArtistCollection.InsertItem(artistName);
    this.DialogResult = DialogResult.OK;
}

我试过在它自己的类中声明它的方法,所以没有结果。

在表单之间传递一个二叉搜索树

在你的第一个表单中将ArtistCollection作为一个属性。

public BSTree<Artist> ArtistCollection { get; set; }

你可以像这样从第二种形式引用它:

var tree = form1.ArtistCollection;

或者在Form2

中创建一个新的构造函数
public Form2(BSTree<Artist> artistCollection)
{
    this.artistCollection = artistCollection;
}

当实例化第二个表单时,它们必须首先传递"this",它们必须在第二个表单的构造函数中处理这个参数