0

我目前正在尝试访问我在 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;
}

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

4

2 回答 2

1

只需以您的第一种形式公开ArtistCollection为属性。

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

然后,您可以像这样从第二种形式中引用它:

var tree = form1.ArtistCollection;

或者,在 Form2 中创建一个新的构造函数

public Form2(BSTree<Artist> artistCollection)
{
    this.artistCollection = artistCollection;
}
于 2013-03-16T20:18:16.307 回答
0

在实例化第二种形式时,他们必须首先传递“this”,他们必须在第二种形式的构造函数中处理它

于 2013-03-16T20:19:46.997 回答