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();
}

私の2番目のフォームのコードは次のとおりです。

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; }

次に、次のように 2 番目のフォームから参照できます。

var tree = form1.ArtistCollection;

または、Form2 で新しいコンストラクターを作成します。

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

2 番目のフォームをインスタンス化するとき、最初に「this」を渡して、2 番目のフォームのコンストラクターで処理する必要があります。

于 2013-03-16T20:19:46.997 に答える