C# 从另一个表单-C获取可变Int#

C# 从另一个表单-C获取可变Int#,c#,winforms,int,C#,Winforms,Int,我正试图完成一个学校的项目,但有些事情没有按我希望的方式进行。我在网上查了一下,我用了那些方法,但仍然不起作用。这是我的密码: 表格1 表格2 有人能帮我吗?谢谢 您正在ExampleHelper表单加载事件中创建MainApp的新实例。此外,在实例化ExampleHelper时,将实例变量指定给传入的MainApp变量,而不是以正确的方式将实例变量设置为传入的引用 因此,您有MainApp1->creates exampleheloper->creates MainApp2。CheeseCli

我正试图完成一个学校的项目,但有些事情没有按我希望的方式进行。我在网上查了一下,我用了那些方法,但仍然不起作用。这是我的密码:

表格1

表格2


有人能帮我吗?谢谢

您正在ExampleHelper表单加载事件中创建MainApp的新实例。此外,在实例化ExampleHelper时,将实例变量指定给传入的MainApp变量,而不是以正确的方式将实例变量设置为传入的引用

因此,您有MainApp1->creates exampleheloper->creates MainApp2。CheeseClick将递增和递减原始MainApp实例上的计数器,但在helper应用程序中,您将从新的、未显示的MainApp实例打印计数器

不要尝试创建一个新的MainApp实例,并正确地分配变量,你应该得到你想要的结果

表格2中

MainApp app = null;
public ExampleHelper(MainApp app1)
{
    app = app1; // note the change in order on this line...
    InitializeComponent();
}

private void ExampleHelper_Load(object sender, EventArgs e)
{
}

有什么错误吗?您是如何显示ExampleHelper表单的,以及它是如何按照您希望的方式工作的?@UnholySheep,不,它只返回0,每次我更改该值时,它只返回0请-您的代码中没有任何地方更改该值。此外,您仅在点击按钮时读取值,不会自动更新。好吧,当前的方式是错误的——不管怎样。您正在分配参数=null。您实例化app=null,然后设置app1=app,然后在load中,您使app成为一个新的mainapp,它将保留默认值0。注释掉ExampleHelper_Load中的“app=newmainapp();”,我打赌它会抛出一个空引用。更改app=app1之后,它可能会工作。谢谢,但我已经在@Aaron的帮助下解决了它。我删除了'app=newmainapp();'线路。无论如何谢谢你!你明白它为什么不起作用吗?你基本上是在创建另一个副本,然后引用那个新副本,而不是维护一个对发生点击事件的实际表单的引用。是的,我知道了。我对同一个项目中的引用和多个表单不熟悉。谢谢
MainApp app = null;
public ExampleHelper(MainApp app1)
{
    app1 = app;
    InitializeComponent();
}

private void ExampleHelper_Load(object sender, EventArgs e)
{
    app = new MainApp();
}

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show(app.GetSelectedButtons.ToString());
}
MainApp app = null;
public ExampleHelper(MainApp app1)
{
    app = app1; // note the change in order on this line...
    InitializeComponent();
}

private void ExampleHelper_Load(object sender, EventArgs e)
{
}