Windowsフォームアプリケーションで、値の1つを別のフォームに渡そうとしていますが、コードが別のフォームに到達すると、ブレークポイントを使用すると値がnullとして表示されます。
Form1には、OrderNumberを生成するメソッドが1つあり、この注文番号はForm1自体とForm2で使用されています。Form2からForm1.OrderNumberを呼び出すと、異なる注文番号が生成されます。両方のフォームの注文番号を同じにする必要があります。
したがって、Form1では、グローバル変数を次のように宣言します。
public string ord;
これで、この「ord」変数は、Form1の次のメソッドから値を取得します。
public string orderNumber()
{
string ord = "ORD" + DateTime.Now.Year + get_next_id();
return ord;
}
ここで、get_next_idは、データベース内の前の番号に従って番号を生成する別のメソッドです。
次のコードで「ord」変数値を使用すると、form1自体で値がnullになります。
InsertUser(maskedTextBox1.Text, comboBox1.Text, maskedTextBox2.Text, maskedTextBox3.Text, maskedTextBox4.Text, maskedTextBox5.Text,
maskedTextBox6.Text, maskedTextBox7.Text, maskedTextBox8.Text, maskedTextBox9.Text, listItems, DateTime.Now, maskedTextBox10.Text, ord, get_next_id());
}
そして、form2でも同じことが起こります。
どこが間違っているのかわかりません。私も以前にこの質問を投稿しましたが、有用な回答は得られませんでした。助けてください。
「ord」の値をform2に渡すために、このコードをフォーム1で呼び出しています。
SaveAllListItems();
//this.Close();
PrintOrder m = new PrintOrder(ord);
m.Show();
ここで、PrintOrderはform2です。