永发信息网

vb.net 多次滚动抽奖的程序代码

答案:1  悬赏:60  手机版
解决时间 2021-03-17 05:58
vb.net 多次滚动抽奖的程序代码
最佳答案
我用多线程写的,你可以参考下。

系统界面图如下:(注:重置功能为清除已经中奖号码,回归1-100都可以中奖状态。)

代码:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        System.Threading.Thread g_Thread = null;

        List g_list = new List();

        int g_Num = 0;

        delegate void g_delegate();
        /// 
        /// 开始
        /// 

        /// 
        /// 
        private void button2_Click(object sender, EventArgs e)
        {
            if(g_list.Count==100)
            {
                MessageBox.Show("所有数字已使用,请重置!");

                return;
            }
            button3.Enabled = true;
            Random r = new Random();
            g_delegate dele= ChangeTxt;
            g_Thread = new System.Threading.Thread(() =>
            {
                while(this.IsDisposed==false)
                {
                    g_Num = r.Next(1, 100);
                    if(g_list.Contains(g_Num))
                    {
                          g_Num =  1;
                    }
                    while(g_list.Contains(g_Num))
                    {
                        g_Num++;
                    }
                    this.Invoke(dele);
                    System.Threading.Thread.Sleep(50);
                }
            });
            g_Thread.Start();
        }
        void ChangeTxt()
        {
            label2.Text = g_Num.ToString();
        }
        /// 
        /// 停止
        /// 

        /// 
        /// 
        private void button3_Click(object sender, EventArgs e)
        {
            //if(g_Thread.ThreadState==System.Threading.ThreadState.Running)
            {
                g_Thread.Abort();
                g_list.Add(Convert.ToInt32(label2.Text));
            }
            button3.Enabled = false;
        }
        /// 
        /// 重置
        /// 

        /// 
        /// 
        private void button1_Click(object sender, EventArgs e)
        {
            g_list.Clear();
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            System.Environment.Exit(0);
        }
    }


追问你好,谢谢你的帮助,但我是VB.net初学者,看不懂哎,但还是很感谢的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
耐磨防水地坪多少钱一平方
童装库存怎么处理?
北京健身学院排行榜情况如何?
中国邮政储蓄银行江麓支行地址在哪,我要去那
在别人基础上继续编程,不能添加资源,提示不
我国选手罗雪娟在雅典奥运会上以1分6秒64的成
第一部大结局之后,很多人也很好奇会不会有第
如果我把身体交给你,你会怎么做 怎么回答
纯电感电路中,正弦交流电源从电压初相为0时
李善明汝窑值得买么
吴江市三湖花园5区属于吴中区还是属于吴江区
酷派手机别人发的视频怎么弄到朋友圈
苹果air电脑的充电指示灯黄灯一直亮着,不知
冬天适合什么颜色的美瞳?
保友办公家具益巢专卖店是卖什么的?
推荐资讯
3dsmax制做效果图时,用VARY渲染出现错误
澳洲大红石墨尔本乘坐飞机如何去
雷神9⒒ S1的屏采用IPS屏幕,IPS屏会有拖影和
CFY原液与精华液的区别是什么?
齧り付く是什么意思及读法
请问罗莎蛋糕和马里奥饼店能加盟吗?麻烦给出
浅紫色西服配什么颜色衬衫
飞虎神鹰里张子健和曲姗姗什么关系?
hadoop 怎样启动namenodemanager
红米手机喇叭声音小还能通过其它方式来调高吗
为啥我Nike.Sb一只鞋垫被粘的死死的
故乡酒楼这个地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?