0

助けが必要です。私はこのサイトを何日も読んでおり、たとえば別のフォームからボタンのプロパティを制御する方法に関する多くのヒントを読んでいます。スタンドアロンとして機能するYoutubeのビデオもありますが、アプリケーションに実装するとNullReferenceExceptionがスローされます。

Form1 にツールストリップ メニューがあるとします。Kalibracio オプションをクリックすると、2 番目のフォームが開きます (Form2 ではなく Kalibracio とも呼ばれます)。次に、メニューの Proba をクリックすると、プロパティが public に設定されている Kalibracio フォームの通常のボタンが無効になります。Form1 のコードは次のとおりです。

    private void kalibracioToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Kalibracio Kalibr = new Kalibracio(this);
        Kalibr.Owner = this;
        Kalibr.Show();
    }

    private void probaToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (Application.OpenForms.OfType<Kalibracio>().Any())
            (this.Owner as Kalibracio).button1.Enabled = false;
    // the above line throws a NullReferenceExcteption if Kalibracio form is open (Kalibracio is null)
    }

私は何が欠けていますか?

4

1 に答える 1

0

LoL は、カリブラシオのインスタンスをグローバルに宣言し、それを開いて、他のすべてのメソッドからそのプロパティにアクセスするだけでした。最初はこのアプローチを試しましたが、私の問題は、ローカルで作成してインスタンスを作成していたことでした。その後、ローカルで作成された前のインスタンスに対処できなかったため、別の方法で別のインスタンスを作成する必要があり、うまくいきませんでした。 ..

于 2013-08-28T17:01:27.793 に答える