谁能帮助我与我的代码在c#它总是输出0在消息框
本文关键字:输出 消息 帮助 我的 代码 | 更新日期: 2023-09-27 18:18:08
感谢你们的快速响应,所以这是我现在的…
我的问题是,它需要我在Form2中添加参数f2 = new Form2();部分,但如果我这样做了,我得到了这个错误错误"字段初始化器不能引用非静态字段,方法或属性"
对于我的Form1我没有编辑这个^
public partial class Form1 : Form
{
Form2 f2 = new Form2();
int userInputValue;
string userInputValueConverted;
string formulaShow = "";
public double answer = 0.0;
public double output;
public Form1()
{
InitializeComponent();
}
f2.DuAnswer = output;
f2.Formula.Text = formulaShow;
f2.Show();
对于我的FORM2,我只有一个构造函数
public double duAnswer;
public Form2(double output)
{
InitializeComponent();
duAnswer = output;
}
public double DuAnswer
{
get
{
return duAnswer;
}
set
{
duAnswer = value;
}
}
和结果按钮
private void result_Click(object sender, EventArgs e)
{
MessageBox.Show("" + duAnswer.ToString("F2"));
}
当您显示您的Form2
实例时,您正在创建Form2的新实例。这不是必需的,但是,您需要在现有的form2:
// Don't create this
// Form2 outP = new Form2(output);
f2.DuAnswer = output;
f2.Formula.Text = formulaShow;
f2.Show();
这也意味着你不需要第二个构造函数:
// public Form2(double output)
// {
// duAnswer = output;
// }
还要注意,如果您决定包含第二个可选构造函数,重要的是它也调用InitializeComponent()
:
public Form2(double output)
{
InitializeComponent(); // This is critical for a form
duAnswer = output;
}
您可以选择使用构造函数链接来完成此操作:
public Form2(double output)
: this()
{
duAnswer = output;
}
您没有将answer的值传递给输出,而是使用没有为其分配任何值的输出变量实例化Form2。
你为什么需要两个呢?为什么不直接执行Form2 from = new Form2(answer);