我创建了一个文本框,并希望引用它在静态收作方法初探。 我怎样才能做到这一点? 在这里,我的代码
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
}
您需要将其传递到静态方法不知何故,最简单的方法是只扩大方法签名接受文本框:
static void gettext(TextBox textBox)
{
textBox.Text = "B"; //here is my problem
}
你应该给你的文本作为参数传递给静态方法
static void gettext(TextBox textbox)
{
textbox.Text = "B";
}
我不知道你明白什么静态方法,静态意味着它属于类而不是类的实例。 可能是一个更好的解决问题的方法是创建其中设置文本的实例方法。
// 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
,可能你并不需要使用它。 静态成员可用于一类的所有实例,但不属于任何人,这意味着静态方法不能访问私有成员。
你可以这样做
static void gettext(TextBox textbox2)
{
textbox2.Text = "B";
}
而在代码
private void Form1_Load(object sender, EventArgs e)
{
YourClass.gettext(textbox2);
}
您可以创建在负载静态变量集:
private static readonly TextBox _textBox = new TextBox();
private void Form1_Load(object sender, EventArgs e)
{
_textBox.Text = "A";
}
static void gettext()
{
_textbox2.Text = "B";
}