我正在尝试更改主窗体上的标签。
这里有个方法是把标签上的数字减1,貌似是在做,但是再次运行时用的是原来的数字,而不是减去的数字(消息框只是为了显示数字是多少,它在“LATER COKE”处变为减去的数字):
public static int cokehold(int coke)
{
frm1 cokeform = new frm1();
coke = int.Parse(cokeform.lblcokenum.Text);
MessageBox.Show(cokeform.lblcokenum.Text);
MessageBox.Show("" + coke);
coke = coke - 1;
MessageBox.Show("" + coke + "LATER COKE");
cokeform.lblcokenum.Text = coke.ToString();
MessageBox.Show(cokeform.lblcokenum.Text + "FORM");
MessageBox.Show("" + coke + "COKE");
return coke;
}
这里是按钮点击甚至开始减法:
private void btncoke_Click(object sender, EventArgs e)
{
int cokehere = 0;
cokehere = cokehold(cokehere);
lblcokenum.Text = cokehere.ToString();
//MessageBox.Show(lblcokenum.Text + "AHHH");
//MessageBox.Show(lblcokenum.Text + "BETTER WORK");
}
在第一段代码中,您可以看到我尝试启动 frm1 的实例,以便我可以与方法中的标签进行交互,它允许我对其进行编辑,但现在它不会低于初始数字减 1。
对于你的第一个问题, 再次运行程序时,它会再次编译。你可以把它比作
gcc myfile.c
./a.out
您必须将该信息存储在文件中。
第二个问题:
int cokehold(int coke) // <-- The int coke parameter can be removed.
那你得定义一个,我想你可以做到这一点。 (
int coke = 0;
)
数字不在
-1
下的问题应该这样解决:
var fmt = new NumberFormatInfo();
fmt.NegativeSign = "−";
int number = int.Parse(climateString, fmt);
希望这对您有所帮助!