1

button1が押されるたびに位置を切り替えるプログラムを作ろうとしています。奇妙な理由で、ランダムはあまりうまくランダム化されていません。Button1は、-45度に傾斜した同じ対角線に沿って進み続けます。

public void button1_Click(object sender, EventArgs e)
    {
        int tempX, tempY;

        Random but1X = new Random();
        tempX = but1X.Next(10, 500);

        Random but1Y = new Random();
        tempY=but1Y.Next(60,490);

        button1.Location = new Point(tempX, tempY);
    }

これは、button1が押されるたびにランダムの新しいインスタンスを作成し続けるためだと聞きましたが、ランダムコードをメソッドに入れてみても、同じ結果が得られます。スライドを上下に移動するだけでなく、このボタンを実際にランダムに移動させる方法はありますか?

4

2 に答える 2

4

必要なすべてのランダム値に対してインスタンス化せずに試してください。

public void button2_Click(object sender, EventArgs e)
{
    int tempX, tempY;

    Random rnd = new Random();
    tempX = rnd.Next(10, 500);
    tempY = rnd.Next(60,490);

    button1.Location = new Point(tempX, tempY);
}

これを2つのボタンでテストしましたが、ランダムな分布でうまく機能します。

于 2013-03-10T02:37:53.393 に答える
-1

すべての時間の新しい乱数.....ここにラベル「New_Random」を印刷します

try
{
    Random randomClass = new Random();
    List<int> collection = new List<int>();

    while (collection.Count <= 100)
    {
        var temp = randomClass.Next(1, 40);
        if (!collection.Contains(temp))
        {
            collection.Add(temp);

            int New_Reandom = Convert.ToInt32(temp);
        }
    }
}
catch
{
}
于 2013-03-10T05:08:37.287 に答える