【发布时间】:2018-03-16 14:26:11
【问题描述】:
我正在尝试完成一个学校项目,但有些事情没有按照我想要的方式进行。我在网上查了一下,我用了这些方法,还是不行。这是我的代码:
表格 1
private int selected_btns = 0;
ExampleHepler ex = null;
public int GetSelectedButtons
{
get
{
return selected_btns;
}
}
private void cheese_Click(object sender, EventArgs e)
{
if (((Control)sender).BackColor == Color.MediumSlateBlue)
{
cheese.BackColor = Color.DarkSlateBlue;
cheese.FlatAppearance.BorderSize = 2;
selected_btns++;
}
else
{
cheese.BackColor = Color.MediumSlateBlue;
cheese.FlatAppearance.BorderSize = 1;
selected_btns--;
}
}
private void Form1_Load(object sender, EventArgs e)
{
ex = new ExampleHelper(this);
}
表格 2
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());
}
有人可以帮助我吗?谢谢!
【问题讨论】:
-
有什么错误吗?您如何显示 ExampleHelper 表单
-
它怎么不能按你想要的方式工作?
-
@UnholySheep,不,它只返回 0,每次我更改该值时它只返回 0
-
minimal reproducible example 请-您的代码中没有任何地方更改值。此外,您只是在单击按钮时读取值,也不会自动更新
-
好吧,目前的方式是错误的——不管怎样。您正在分配参数 = null。你实例化 app = null,然后设置 app1 = app,然后在加载时,无论如何你都要让 app 成为一个新的 mainapp,它会保持默认值 0。注释掉“app = new MainApp();”在 ExampleHelper_Load 中,我敢打赌它会抛出一个空引用。之后更改app = app1,它可能会起作用。