特定の数値の絶対値を計算しようとするプログラムに取り組んでいました。私のコードにはいくつかの部分があります。最初の部分では、数値アップダウン ボックスを監視することによって、方程式が 1 項か 2 項かを確認します。1 項の場合は入力ボックスが 1 つだけ表示され、p.choice というパブリック変数に 1 が設定されます。ただし、2 項の場合は入力ボックスが 2 つ表示され、p.choice は 2 に設定されます。 go ボタンを押すと、プログラムは p.choice が 1 または 2 に等しいかどうかをチェックします (後で 0 の例外を追加します)。私はまだ2の機能を持っていません。しかし、p.choice が 1 の場合は、calculate1() という関数が実行されます。この関数は、最初のテキスト ボックスから取得したパブリック変数に基づいて、その変数が正か負かをチェックします。マイナスならプラスにします。次に、その変数を返します。クラス全体の私のコードは次のとおりです(別のクラスからは何も呼び出されません)
public partial class Form1 : Form
{
private int calculate1()
{
Form1 p = new Form1();
if (p.box1 < 0)
{
p.box1 = p.box1 * -1;
}
return p.box1;
}
public int choice;
public int box1;
public int box2;
public Form1()
{
InitializeComponent();
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
Form1 p = new Form1();
decimal changeValue = numericUpDown1.Value;
changeValue = Convert.ToInt32(changeValue);
if (changeValue == 1)
{
textBox1.Visible = true;
textBox2.Visible = false;
p.choice = 1;
}
else if (changeValue == 2)
{
textBox1.Visible = true;
textBox2.Visible = true;
p.choice = 2;
}
else
{
textBox1.Visible = false;
textBox2.Visible = false;
p.choice = 0;
}
}
private void button1_Click(object sender, EventArgs e)
{
Form1 p = new Form1();
if (p.choice == 1)
{
//p.box1 = Convert.ToInt32(textBox1.Text);
//p.box1 = calculate1();
//string result = "The Answer Is " + p.box1;
//label2.Text = "5";
//MessageBox.Show("Answer!", result, MessageBoxButtons.OK);
label2.Text = "Hello World";
}
else if (p.choice == 2)
{
p.box1 = Convert.ToInt32(textBox1.Text);
p.box2 = Convert.ToInt32(textBox2.Text);
}
}
}
私の問題は、ボタンのクリックで発生します。これは、else 句がまだないため、p.choice が何にも等しく設定されていないことを意味します。ただし、数値ボックスで 1 を選択して値を入力すると、p.choice が 1 に設定されない理由がわかりません。以前の編集で、label2.text = を p.choice から int32 への変換に設定しようとしました。ボックス番号を変更すると、ラベルがボックス番号で正しく変更されました。したがって、コードのこの部分で番号が登録されていることがわかります。次の部分で機能しない理由がわかりません。誰かがこれで私を助けることができれば、本当に感謝しています.