VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1296|回复: 11

抽奖系统求助

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-29 20:30:02 | 显示全部楼层 |阅读模式
我在给单位做抽奖系统
大致做法是
把员工信息输入数据库
用用一个按钮点击事件
启动FOR 循环语句
用LABEL.TEXT显示数据

可是现在只要一点开始按钮
它就一直循环
其他按钮处于无法点击状态

请问如何编写 能够实现
点击按钮一 循环体开始
点击按钮二 循环体结束
回复

使用道具 举报

0

主题

58

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-5-9 11:45:01 | 显示全部楼层
按钮一 : 启动一个线程 抽奖。
回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-10 13:15:01 | 显示全部楼层
在循环体中加一个判断就行了啊。。

判断你是否点击了第二个按钮。

for ......
if     条件 then
exit fot
endif
next

回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-10 13:45:02 | 显示全部楼层
fot 是写错了 应为 for
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-10 20:45:01 | 显示全部楼层
谢谢你
不过我确实是新手

请问这个判断第二个按钮的语句
大概怎么写
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-12 10:45:01 | 显示全部楼层
用多线程啊
一个线程怎么搞,界面死锁了
回复

使用道具 举报

0

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-13 21:00:01 | 显示全部楼层
利用timer就很简单了,把你要抽奖的号码都放到 numbers 数组里。

private string[] numbers = null;
               
                private void btnStart_Click(object sender, System.EventArgs e)
                {
                        this.timer1.Interval = 100;
                        this.timer1.Start();
                        this.btnStart.Enabled = false;
                        this.btnStop.Enabled = true;
                }

                private void Form1_Load(object sender, System.EventArgs e)
                {
                        numbers = new string[] {"1","2","3","4","5","6","7","8","9","0"};
                        this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
                        this.btnStart.Enabled = true;
                        this.btnStop.Enabled = false;
                }

                private void timer1_Tick(object sender, EventArgs e)
                {
                        this.txtNumber.Text = GetRandomNumber(this.numbers);
                }

                private string GetRandomNumber(string[] numbers)
                {
                        if(numbers == null || numbers.Length == 0)
                                return "";
                        Random rdm = new Random(unchecked((int)DateTime.Now.Ticks));
                        int index = rdm.Next(0, numbers.Length-1);
                        return numbers[index];
                }

                private void btnStop_Click(object sender, System.EventArgs e)
                {
                        this.timer1.Stop();
                        this.btnStart.Enabled = true;
                        this.btnStop.Enabled = false;
                }
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-15 11:00:01 | 显示全部楼层
楼主,抽奖用循环不科学,应该用随机比较好一点,Random函数能解决(比如用timer控件0.1秒随机抽一个,点击按钮确定),楼主用循环的话,人家会说你不厚道.
回复

使用道具 举报

0

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-15 14:15:01 | 显示全部楼层
补充,抽到一个号码以后要把这个号码从数组里去掉,避免重复中奖~~
回复

使用道具 举报

0

主题

10

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-27 22:00:01 | 显示全部楼层
你把你的代码贴出来,我在上面改吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表