簡単な WindowsFormsApplication を作成しましたが、いくつか問題があります。フォームには、10 個の TextBox と 1 つのボタンがあります。プログラムの目的は、ボタンをクリックしたときに、すべてのボックスに異なる番号を生成することです。コードの一部を次に示します。
private void button1_Click(object sender, EventArgs e)
{
int p = 0;
int[] array = GeneratingArray();
foreach (Control c in tableLayoutPanel1.Controls)
{
if (c.GetType().ToString() == "System.Windows.Forms.TextBox")
{
c.Text = array[p].ToString();
p++;
}
}
}
public int GeneratingInt()
{
int random;
Contract.Ensures(Contract.Result<int>() > -11, "Array out of Bounds(-10 ; 10)");
Contract.Ensures(Contract.Result<int>() < 11, "Array out of Bounds(-10 ; 10)");
Random gnr = new Random();
random = gnr.Next(20);
return random;
}
public int[] GeneratingArray()
{
int[] array = new int[10];
int random;
for (int i = 0; i < 10; i++)
{
random = GeneratingInt();
array[i] = random;
}
return array;
}
問題は、デバッガーを使用するとすべて正常に動作しますが、すべてのボックスでアプリケーションを起動すると同じ番号が生成されることです。この種の問題の原因がわかりませんので、お尋ねします。ありがとう。