我要做一个随机数产生器,要求第一次的随机数种子可以是程序中任意设定的一个值,然后要点一个button就开始一直产生随机数并在label里面显示,就类似于电视节目里面抽中奖号码一样。当再点一下button的时候随机数就会停下来,然后以当前显示的这个为准。 可是现在不知道该怎么做第一个小问题是,第一次的随机数种子怎么弄?我设定了 int seed = 0; if(seed != 0){ seed = (int)label1.text[0] * 10 + (int)label1.text[1];}
但关键是这个程序他每次都把seed当做0 我以前在C里面编的时候可以用static seed = 0;来达到只初始化一次的效果,现在要做C#该怎么弄啊?第二个是一直让他滚动显示的问题,这个木有思路啊…… 如果用while(true)的话程序就直接崩了…… 而且我也不需要显示那么快,只要一秒能显示5-10个就够了 这样也好看一点   但是真的不会弄……在线等,求大神们指教~

解决方案 »

  1.   

    用个定时器,开始的时候让timer.Enabled = true,停止的时候让它为false
    interval设置为你要的间隔,推荐10毫秒(1秒显示5个摇奖的话,太慢了,人的反应极限在0.1秒,为了公平,你一秒钟至少要10次以上)在定时器中不断产生随机数,并且显示出来。
      

  2.   

    随机数发生器可以声明为private static Random Rnd = new Random();然后在你的程序中使用它。正如#1楼所说,使用timer即可。当然为了显示效果(免得模糊成一片),我觉得还是 Interval设置为100或者200毫秒就足够了。只不过当用按下Button之后,你应该再计算下一个随机数,而不应该停止在用户所看到的那个数字上。
      

  3.   

        public partial class Form1 : Form
        {
            Random RD = new Random();
            public Form1()
            {
                InitializeComponent();
            }        private void timer1_Tick(object sender, EventArgs e)
            {
               lbl_haoma.Text= RD.Next(1, 101).ToString();
            }        private void Form1_Load(object sender, EventArgs e)
            {        }        private void btn_start_stop_Click(object sender, EventArgs e)
            {
                if (timer1.Enabled==true)
                {
                    btn_start_stop.Text = "开始";
                    timer1.Enabled = false;
                }
                else if (timer1.Enabled==false)
                {
                    timer1.Enabled = true;
                    btn_start_stop.Text = "停止";
                }        }
        }
    这样吧