1

テキストボックスを作成しましたが、それを静的メソッドで参照したいと考えています。どうやってやるの?これが私のコードです

    private void Form1_Load(object sender, EventArgs e)
    {
        TextBox textbox2 = new TextBox();
        textbox2.Text = "A";
    }

    static void gettext() 
    {
        textbox2.Text = "B"; //here is my problem
    } 
4

5 に答える 5

7

何らかの方法で静的メソッドに渡す必要があります。最も簡単なオプションは、メソッド シグネチャを展開してテキスト ボックスを受け入れることです。

static void gettext(TextBox textBox) 
{
    textBox.Text = "B"; //here is my problem
} 
于 2013-03-11T10:35:30.843 に答える
4

テキストボックスをパラメーターとして静的メソッドに渡す必要があります

static void gettext(TextBox textbox)
{
    textbox.Text = "B";
}
于 2013-03-11T10:35:47.530 に答える
2

静的とは、クラスのインスタンスではなく、クラスに属していることを意味します。おそらく、問題のより良い解決策は、テキストを設定するインスタンス メソッドを作成することです。

// private variable
private TextBox textbox2;

private void Form1_Load(object sender, EventArgs e)
{
    // refers to private instance variable
    textbox2 = new TextBox();
    textbox2.Text = "A";
}

private void gettext() 
{
    // refers to private instance variable
    textbox2.Text = "B";
} 

理解するstaticのが難しい場合は、使用する必要がない可能性があります。静的メンバーは、クラスのすべてのインスタンスで使用できますが、どのインスタンスにも属していません。つまり、静的メソッドはプライベート メンバーにアクセスできません。

于 2013-03-11T10:35:34.640 に答える
2

あなたはそうすることができます

static void gettext(TextBox textbox2) 
{
    textbox2.Text = "B";
} 

そしてコードで

private void Form1_Load(object sender, EventArgs e)
{
    YourClass.gettext(textbox2);
}
于 2013-03-11T10:37:12.793 に答える
-1

Load で静的変数セットを作成できます。

private static readonly TextBox _textBox = new TextBox();

private void Form1_Load(object sender, EventArgs e)
{
    _textBox.Text = "A";
}

static void gettext()  
{ 
    _textbox2.Text = "B";
} 
于 2013-03-11T10:45:46.370 に答える