C# 将对象传递给Windows窗体事件处理程序

C# 将对象传递给Windows窗体事件处理程序,c#,C#,我搜索了几个小时,但似乎找不到答案。我觉得好像有一个简单的答案,我只是用头撞墙,试图找到它 private void Form1_Load(object sender, EventArgs e) { ......bunch of code here... GroupBoxController GBControl = new GroupBoxController(groupbox1); } private void nextbutton_Click(object send

我搜索了几个小时,但似乎找不到答案。我觉得好像有一个简单的答案,我只是用头撞墙,试图找到它

private void Form1_Load(object sender, EventArgs e)
{
     ......bunch of code here...

     GroupBoxController GBControl = new GroupBoxController(groupbox1);

}

private void nextbutton_Click(object sender, EventArgs e)
{
     .....I want to be able to access GBControl and modify in here ..........
}
感谢您提供的任何可能解决此问题的答案

private GroupBoxController GBControl;

private void Form1_Load(object sender, EventArgs e)
{
     ......bunch of code here...

     GBControl = new GroupBoxController(groupbox1);

}

private void nextbutton_Click(object sender, EventArgs e)
{
     GBControl.Whatever();
}
试试上面的方法


一般的想法是GBControl现在在类的所有成员的范围内。在此之前,它作为局部变量存在于Form_Load事件处理程序中,这使得它在函数外部无法访问

如果您想从
nextButton\u Click
访问
GBControl
,那么为什么要在
Form1\u Load
中声明并分配它?将
GBControl
作为表单类的字段,而不是Load方法的局部变量。这里的问题是范围。了解变量的范围@TGH通过更广泛地定义
GBControl
的作用域来解决这个问题,因此这两种方法都可以访问它。我需要能够在多个事件中访问GBControl,而不仅仅是一个事件。嗯,我在它上调用了一些其他方法FormLoad事件。哇,非常感谢!我曾尝试过类似的方法,声明做了类似于您所做的事情,但我在Load方法之外创建了一个对象实例。这非常有效,非常感谢!