0
private void button1_Click(object sender, EventArgs e)
    {
        Form2.Show();
    }

私の意見ではエラーが含まれていない上記のコードがありますが、何らかの理由で実行されません。「非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です」というエラーが表示されますが、見逃したものはありますか? フォームは 2 つ (Form1 と Form2) しかなく、ボタンは 1 つしかありません。レジストリ クリーナーを使用しましたが、エラーが解決しません。動作する別のコードが存在しますが、このコードはフォームのコピーを新しい変数として作成しますが、Visual Basic のように元のフォームを表示したいと思います。

4

2 に答える 2

1

Form2 または Form1 は単なるクラスの名前です。このクラスを使用する前に、それらのインスタンスを作成する必要があります

Form2 secondaryForm = new Form2();

この後、そのクラスのすべてのメソッドとプロパティを使用できますsecondaryForm.Show();

したがって、Form2 を使用/表示する前に、インスタンスを作成する必要があります。見せたいなら

あなたの本来の姿

は、インスタンスがすでに作成されていることを意味します。そのインスタンスが作成されたコードを確認し、そのフォームへの参照を変数に入れる必要があります。

Form1 に変数を作成します。

private Form2 secondaryForm;

元の Form2 を既に作成しているコードでは、次の変数を使用するだけです。

this.secondaryForm = new Form2();

この後、Form1 のコードのどこでも、次の行で Form2 を表示できます。

this.secondaryFomr.Show();
于 2013-06-01T20:05:03.367 に答える