C# 简单实现轮盘抽签软件程序(范本)

话不多说,直接上代码:(这里用四框(四个中抽)做范本)

using System; // 这些是要用到的库
using System.Drawing;
using System.Windows.Forms;

namespace 抽
{
    public partial class Form1 : Form
    {
        public enum RunState // 枚举一些类:开始和停止
        {
            running,
            stop
        }
        RunState state = RunState.stop; // 引用类,初始化为停止
        public Form1()
        {
            InitializeComponent();
        }
        private void Runcolor(object sender, EventArgs e) // 颜色变动的函数(轮盘抽签)
        {
            timer4.Enabled = false; // timer4为这个函数的执行计时器,这里设关闭
            if (state == RunState.running) // 实现颜色变动的条件(开始条件)
            {
                xian1.BackColor = Color.Yellow; // 设第一个框为黄色
                timer1.Enabled = true; // 执行第一个变框
                timer4.Enabled = true; // 开启函数计时器
            }
        }
        private void button1_Click(object sender, EventArgs e) // 开始按钮
        {
            button1.Enabled = false;
            button2.Enabled = true;
            timer4.Tick += new EventHandler(Runcolor); // 委托执行Runcolor函数(每一时间间隔执行一次)
            timer4.Enabled = true; // 开启计时器
            this.state = RunState.running; // 条件变为开始
        }

        private void timer1_Tick(object sender, EventArgs e) // 变第二个框
        {
            if (xian1.BackColor == Color.Yellow)
            {
                xian1.BackColor = Color.White;
                xian2.BackColor = Color.Yellow;
            }
            timer1.Enabled = false;
            timer2.Enabled = true;
        }

        private void timer2_Tick(object sender, EventArgs e) // 变第三个框
        {
            if (xian2.BackColor == Color.Yellow)
            {
                xian2.BackColor = Color.White;
                xian3.BackColor = Color.Yellow;
            }
            timer2.Enabled = false;
            timer3.Enabled = true;
        }

        private void timer3_Tick(object sender, EventArgs e) // 变第四个框
        {
            if (xian3.BackColor == Color.Yellow)
            {
                xian3.BackColor = Color.White;
                xian4.BackColor = Color.Yellow;
            }
            timer3.Enabled = false;
            timer5.Enabled = true;
        }

        private void timer5_Tick(object sender, EventArgs e) // 使颜色恢复(上面的循环会重新开始第一个框为黄色)
        {
            if (xian4.BackColor == Color.Yellow)
            {
                xian4.BackColor = Color.White;
            }
            timer5.Enabled = false;
        }

        private void button2_Click(object sender, EventArgs e) // 停止按钮
        {
            button1.Enabled = true;
            state = RunState.stop; // 设停止条件(与上面开始条件对应)
            this.timer4.Enabled = false; // 关闭计时器
            if (timer1.Enabled == true) // 以下是直接停止中间的步骤(选中对应的框)
            {
                timer1.Enabled = false;
            }
            if (timer2.Enabled == true)
            {
                timer2.Enabled = false;
            }
            if (timer3.Enabled == true)
            {
                timer3.Enabled = false;
            }
            if (timer5.Enabled == true)
            {
                timer5.Enabled = false;
            }
        }
    }
}

1、程序的步骤

  通过按动开始键,实现颜色在不同框内循环跳动,在通过点击停止键,实现颜色停止。

 代码的解析都已标出,要注意的是计时器的时间间隔,timer1、timer2、timer3、timer5都是100(毫秒),而函数循环计时器的时间间隔为400(毫秒),因为一个循环要等四个框都变完了才执行,所以后续要做八抽一等等就要去对应改函数循环计时器时间间隔。

 

最后就是结果了:

 

 如果有什么错误或更好的建议可在评论区留言,这是我第一次的学习结果,不喜勿喷!

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值