WindowsFormsアプリでランダムな数字を生成するサンプル

2024年8月5日

下記は、C# の Windows Forms アプリケーションでランダムな数字を生成するサンプルです。このアプリケーションは、ボタンをクリックすると、1 から 100 の間のランダムな数字が生成され、テキストボックスに表示されます

このサンプルを実行するには、新しい Windows Forms アプリケーションを作成し、Form1.cs ファイルに下記のコードを貼り付けます。次に、ボタンとテキストボックスをフォームに配置します。最後に、ボタンの Click イベントハンドラーに上記の button1_Click メソッドを関連付けます。

サンプルのコード

using System;
using System.Drawing;
using System.Windows.Forms;

namespace RandomNumberGenerator
{
    public partial class Form1 : Form
    {
        // フィールドとしてRandomオブジェクトを宣言
        private Random random;
        private Label label1;
        private Button button1;

        // Form の初期化
        public Form1()
        {
            InitializeComponent();
            // Randomオブジェクトを初期化
            random = new Random();

            // Labelをコードで生成
            label1 = new Label
            {
                Location = new Point(100, 50),
                Size = new Size(100, 20),
                Name = "label1",
                Text = "Number"
            };

            // Labelをフォームに追加
            this.Controls.Add(label1);

            // Buttonをコードで生成
            button1 = new Button
            {
                Location = new Point(100, 100),
                Size = new Size(75, 23),
                Name = "button1",
                Text = "Generate"
            };

            // Buttonのクリックイベントハンドラを追加
            button1.Click += button1_Click;

            // Buttonをフォームに追加
            this.Controls.Add(button1);
        }

        // ボタンがクリックされた時の処理
        private void button1_Click(object sender, EventArgs e)
        {
            // ランダムな数字を生成する
            int randomNumber = random.Next(1, 101);

            // 生成された数字をラベルに表示する
            label1.Text = randomNumber.ToString();
        }
    }
}

Randomクラス

System.Random クラスは、C# で乱数を生成するためのクラスです。このクラスは、様々な種類の乱数を生成するためのメソッドを提供します。例えば、以下のようなメソッドがあります。

  • Next(): 0 以上 int.MaxValue 未満の 32 ビット符号付き整数の乱数を生成します。
  • Next(int maxValue): 0 以上 maxValue 未満の 32 ビット符号付き整数の乱数を生成します。
  • Next(int minValue, int maxValue): minValue 以上 maxValue 未満の 32 ビット符号付き整数の乱数を生成します。
  • NextDouble(): 0.0 以上 1.0 未満の倍精度浮動小数点数の乱数を生成します。

例えば、以下のように Random クラスのインスタンスを生成して、乱数を生成することができます。

Random random = new Random();
int randomNumber = random.Next(1, 101);

この例では、Random クラスのインスタンスを生成して、Next メソッドを呼び出して、1 以上 100 以下の乱数を生成しています。