3

誰かがこれについて私を助けてくれれば幸いです。

form1、form2、form3 の 3 つのフォームを持つ Windows フォーム アプリがあります。form1はアプリ起動時に起動します。form1 には、form2 を表示し、form1 を非表示にするボタンがあります。また、form3 を表示し、form2 の form2 を非表示にするボタンも 1 つあります。

public partial class Form1 : Form
{

    Form2 f2= new Form2();
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();            
        f2.Show();        
    }
}


public partial class Form2 : Form
{
            Form3 f3 = new Form3();
    private void button1_Click(object sender, EventArgs e)
    {
         this.Hide();
         f3.Show();                
    }
 }

質問はform3にあります.form2の実行時に値が割り当てられている変数のいくつかにアクセスしようとしました. f2 を modaless フォームとして作成したので、f2.myvariables を使用するだけでアクセスできるはずですが、インテリセンスは f2 オブジェクトを提供しません。何故ですか?これらの変数を public static として宣言する方法を見つけたので、form2.myvariables を使用してアクセスできました。すべての値は実行時に割り当てられるため、静的変数でこれを行うにはどうすればよいでしょうか? 私はC#の初心者で、すでにこれについて多くの検索を行っていますが、私の質問に正確に答える場所はないようです。事前に助けてくれてありがとう!!

4

4 に答える 4

0

f2 を modaless フォームとして作成したので、f2.myvariables を使用するだけでアクセスできるはずですが、インテリセンスは f2 オブジェクトを提供しません。何故ですか?

クラスのインスタンスを作成すると、パブリックとして宣言されたすべての変数とメソッドが使用可能になります。変数を として宣言したかどうかを再確認してくださいpublic

すべての値は実行時に割り当てられるため、静的変数でこれを行うにはどうすればよいでしょうか?

いいえ、静的変数とメソッドはプログラムの開始時に定義されます。それらを参照するためにインスタンスを作成する必要はありません。

于 2012-08-20T17:46:09.537 に答える