已创建了一个文本框,并希望以静态方法引用它。我怎样才能做到这一点? 这里;我的代码
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
}
答案 0 :(得分:7)
你需要以某种方式将它传递给静态方法,最简单的选择是只扩展方法签名以接受文本框:
static void gettext(TextBox textBox)
{
textBox.Text = "B"; //here is my problem
}
答案 1 :(得分:4)
您应该将文本框作为参数提供给静态方法
static void gettext(TextBox textbox)
{
textbox.Text = "B";
}
答案 2 :(得分:2)
我不确定你理解静态意味着什么,静态意味着它属于CLASS而不属于类的实例。可能更好的解决方案是创建一个设置文本的实例方法。
// 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
时遇到困难,则可能不需要使用它。静态成员可用于类的所有实例,但不属于任何类,这意味着静态方法无法访问私有成员。
答案 3 :(得分:2)
你可以这样做
static void gettext(TextBox textbox2)
{
textbox2.Text = "B";
}
在代码中
private void Form1_Load(object sender, EventArgs e)
{
YourClass.gettext(textbox2);
}
答案 4 :(得分:-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";
}