1. 程式人生 > >一個猜數字的小遊戲—C# 控制元件的動態載入和應用 多執行緒

一個猜數字的小遊戲—C# 控制元件的動態載入和應用 多執行緒

  • 用C#開發的一個猜數字的小遊戲
namespace 猜數字遊戲__執行緒
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int num = 0;
        int number;
        private void Form1_Load(object sender, EventArgs e)
        {

            this.Width = 396
; this.Height = 465; this.MaximizeBox = false; this.FormBorderStyle = FormBorderStyle.FixedDialog; setnum(); } bool flag = false; private void StartBnt_Click(object sender, EventArgs e) { if (!flag) { Thread t1 = new
Thread(new ThreadStart(TimeThread)); t1.Priority = ThreadPriority.Normal; t1.Start(); //啟動執行緒 timer.Enabled = true; StartBnt.Text = "復位"; flag = true; } else { //this.Close(); groupBox.Controls.Clear(); num = 0
; timer.Enabled = false; setnum(); label.Text = "0"; StartBnt.Text = "開始"; flag=false; } } private void bt_Click(object sender, EventArgs e) { Button btn = (Button)sender;//例項化一個按鈕,來進行事件的設定 if (flag) { int temp; if (int.TryParse(btn.Text, out temp)) { if (temp < number) { btn.BackColor = Color.Red; btn.Text = "小"; } else if (temp > number) { btn.BackColor = Color.Blue; btn.Text = "大"; } else { timer.Enabled = false; if (MessageBox.Show("恭喜你,猜對了!用時" + num + "秒", "finish") != 0) { num = 0; label.Text = "0"; groupBox.Controls.Clear(); setnum(); StartBnt.Text = "開始"; flag = false; } } } } } private void TimeThread() { //BeginInvoke((ThreadStart)delegate() //{ // num++; //}, ThreadPriority.Normal); Random random = new Random(); number = random.Next(1, 101); } private void timer1_Tick(object sender, EventArgs e) { label.Text = Convert.ToString(++num); } void setnum() { int p_x = 10; int p_y = 0; //動態載入控制元件 for (int i = 0; i < 100; i++) { Button bt = new Button(); bt.Text = (i + 1).ToString(); bt.Name = (i + 1).ToString(); bt.Width = 35; bt.Height = 35; bt.Location = new Point(p_x, p_y); bt.BackColor = Color.YellowGreen; bt.Click += new EventHandler(this.bt_Click);//載入按鈕事件 p_x += 36; if ((i + 1) % 10 == 0) { p_x = 10; p_y += 36; } groupBox.Controls.Add(bt); } } } }