c#问题(随机数)50分
想产生一个随机数字,当打开界面,点击开始,数字开始不停的循环的动(就像选取幸运观众的手机号码一样那样),直到点击停止,就产生了一个随机数字,问:如何实现让数字‘动’的效果
[解决办法]
用Random类创建一个对象即可获取随机数。
[解决办法]
- C# code
//拉一个Timer控件到窗体,一个Label,两个Button Random rnd=new Random(unchecked((int)DateTime.Now.Ticks));//声明一个全局变量 private void timer1_Tick(object sender, System.EventArgs e)//添加Timer的Tick事件 { this.label1.Text=rnd.Next(1,39).ToString(); } private void btnStart_Click(object sender, System.EventArgs e)//开始按钮的Click事件 { this.timer1.Start(); } private void btnEnd_Click(object sender, System.EventArgs e)//结束按钮的Click事件 { this.timer1.Stop(); }
[解决办法]
这个要用到线程,因为你要在数字滚动的时候还可以点击按钮..
[解决办法]
Random random = new Random();
List<int> old = new List<int>();
for (int i = 0; i < 35; i++)
{
int r = random.Next(1, 35);
while (old.Contains(r))
{
r = random.Next(1, 35);
}
old.Add(r);
lable.Text = r.ToString();
Thread.Sleep(1000);
}
old.Clear();
[解决办法]
很久很久以前做的一个双色球,拿出主要的给你看看
- C# code
private void timer2_Tick(object sender, System.EventArgs e) { Random a=new Random(); int i1=a.Next(1,33); if(i1<10) { this.textBox1.Text="0"+i1.ToString(); } else { this.textBox1.Text=i1.ToString(); } int i2=a.Next(1,33); if(i2<10) { this.textBox2.Text="0"+i2.ToString(); } else { this.textBox2.Text=i2.ToString(); } int i3=a.Next(1,33); if(i3<10) { this.textBox3.Text="0"+i3.ToString(); } else { this.textBox3.Text=i3.ToString(); } int i4=a.Next(1,33); if(i4<10) { this.textBox4.Text=")"+i4.ToString(); } else { this.textBox4.Text=i4.ToString(); } int i5=a.Next(1,33); if(i5<10) { this.textBox5.Text="0"+i5.ToString(); } else { this.textBox5.Text=i5.ToString(); } int i6=a.Next(1,33); if(i6<10) { this.textBox6.Text="0"+i6.ToString(); } else { this.textBox6.Text=i6.ToString(); } int i7=a.Next(1,16); if(i7<10) { this.textBox7.Text="0"+i7.ToString(); } else { this.textBox7.Text=i7.ToString(); } }
[解决办法]
- C# code
private void button1_Click(object sender, EventArgs e) { timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { Random r = new Random(); int t = r.Next(0, 100); this.label1.Text = t.ToString(); } private void button2_Click(object sender, EventArgs e) { timer1.Stop(); }
[解决办法]
- C# code
using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;namespace TestForm{ public partial class Form1 : Form { private Thread thread = null; private Random rnd = new Random(); private delegate void invokeMethod(); private invokeMethod func = null; private string output = string.Empty; public Form1() { InitializeComponent(); func = new invokeMethod(Output); } private void Output() { label1.Text = output; } private void ThreadFunc() { while(true) { output = rnd.Next(1, 100).ToString(); label1.BeginInvoke(func); Thread.Sleep(300); } } private void button1_Click(object sender, EventArgs e) { thread = new Thread(new ThreadStart(ThreadFunc)); thread.IsBackground = true; thread.Start(); } private void button2_Click(object sender, EventArgs e) { if(thread != null) { thread.Abort(); } } }}
[解决办法]
[解决办法]
为什么不用时钟控件呢?我觉得很好啊
二楼的方法就不错,简洁方便
也可以通过设置Visual属性将2个按钮放在同一位置,这样感觉就是一个按钮