让按钮显示倒计时10秒以后才能点击确定

ChocolateUncle 2017-08-06 08:13:51


本人菜鸟一枚,跪求各路大神不吝赐教!
用的vs2017 C#的windows窗体应用.NET
希望能写一段详细的代码。
只需要在按钮上显示10秒的倒计时然后可以点击确定或者下一步这样的。
谢谢谢谢!!!
...全文
1637 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_peng_yl 2017-08-09
  • 打赏
  • 举报
回复
private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; this.timer1.Interval = 1000; this.button1.Enable = false; this.button1.Text = "10"; } private void timer1_Tick(object sender, EventArgs e) { if (this.button1.Text == "0") { this.button1.Text = "确定"; this.button1.Enable = true; this.timer1.Enabled = false; return; } int i = int.Parse(this.button1.Text); i--; this.button1.Text = i.ToString(); }
ilikeff8 2017-08-09
  • 打赏
  • 举报
回复
timer就可以,或者

        public Form1()
        {
            InitializeComponent();

            this.Load += Form1_Load;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            LoopButton();
        }

        private void LoopButton()
        {
            ThreadPool.QueueUserWorkItem(obj =>
            {
                this.Invoke((Action)(() =>
                {
                    button1.Enabled = false;
                    button1.Text = "10";
                }));

                int time = 10;

                while (time > 0)
                {
                    Thread.Sleep(1000);

                    this.Invoke((Action)(() =>
                    {
                        button1.Text = (--time).ToString();
                    }));
                }

                this.Invoke((Action)(() =>
                {
                    button1.Enabled = true;
                }));
            });
        }
浪子-无悔 2017-08-09
  • 打赏
  • 举报
回复
引用 9 楼 hanjun0612 的回复:
使用 timer控件,track事件里count计数到10,控件enable=true;
这种方法就可以了啊!
wang_peng_yl 2017-08-08
  • 打赏
  • 举报
回复
那你就自己改造一下呗,不会改呀
Ciel_Bubble 2017-08-08
  • 打赏
  • 举报
回复
引用 5 楼 wang_peng_yl 的回复:
private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; this.timer1.Interval = 1000; this.button1.Text = "10"; } private void timer1_Tick(object sender, EventArgs e) { if (this.button1.Text == "0") { this.button1.Text = "确定"; this.timer1.Enabled = false; return; } int i = int.Parse(this.button1.Text); i--; this.button1.Text = i.ToString(); }
private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; this.timer1.Interval = 1000; this.button.Enabled = false; this.button1.Text = "10"; timer.Start(); } private void timer1_Tick(object sender, EventArgs e) { if (this.button1.Text == "0") { this.button1.Text = "确定"; this.timer1.Enabled = true; return; } int i = int.Parse(this.button1.Text); i--; this.button1.Text = i.ToString(); } 在你的代码改改就行,虽然方法不是最优,但能达到这效果了
正怒月神 2017-08-08
  • 打赏
  • 举报
回复
使用 timer控件,track事件里count计数到10,控件enable=true;
ChocolateUncle 2017-08-08
  • 打赏
  • 举报
回复
前两天才接触c#,因为有较好计算机功底勉强能够操作,只是看不懂代码都是网上找的教程
Hobo丶 2017-08-07
  • 打赏
  • 举报
回复
引用 5 楼 wang_peng_yl 的回复:
private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; this.timer1.Interval = 1000; this.button1.Text = "10"; } private void timer1_Tick(object sender, EventArgs e) { if (this.button1.Text == "0") { this.button1.Text = "确定"; this.timer1.Enabled = false; return; } int i = int.Parse(this.button1.Text); i--; this.button1.Text = i.ToString(); }
这方法是可行的。 但是可在第一个方法加入button1.Enable=false; 第二个加入方法加入 button1.Enable=true 才是你说的10秒后才能点击,不然 计时过程中 按钮还是可以点击的
wang_peng_yl 2017-08-07
  • 打赏
  • 举报
回复
private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; this.timer1.Interval = 1000; this.button1.Text = "10"; } private void timer1_Tick(object sender, EventArgs e) { if (this.button1.Text == "0") { this.button1.Text = "确定"; this.timer1.Enabled = false; return; } int i = int.Parse(this.button1.Text); i--; this.button1.Text = i.ToString(); }
MYsce 2017-08-07
  • 打赏
  • 举报
回复
对啊用timer也是可以的
nry19871012 2017-08-06
  • 打赏
  • 举报
回复
timer也是可以的,你就差一点点而已。
homesos 2017-08-06
  • 打赏
  • 举报
回复
你这段代码略加改动 按钮一开始不可用(或启动计时器时设置为不可用),timer停止stop的时候,再把按钮设为可用。
john_QQ:2335298917 2017-08-06
  • 打赏
  • 举报
回复
倒计时最好用多线程,改变按钮文本可以用invoke,在倒计时结束之前请禁用按钮
本考试系统由前台考生考试部分和后台系统管理部分组成。 一、前台部分 1、 选择课程: (1)、考试部分 考试权限模式有两种:   1、课程管理员后台设定:由课程管理员在考生考试之前预先设定好每个的试卷 。   2、考生自己选择:考生在第一次登陆考试平台的时候,自己选择要参加的课程和试卷。 考试权限模式由最高管理员在后台设置。 考生要参加考试,必须满足几个前提: a.考生所在的有权限参加该试卷的考试。 b.该试卷呈“打开”状态。 c.该试卷所在课程呈“打开”状态。 d.该试卷所涉及的章节呈“打开”状态。 e.正好在试卷规定的时间内参加考试。 考生在考试过程中,应注意保存答案。试卷内每一种题型的后面都有一个保存按钮,只要考生做完此类型试题,应点击保存按钮。 试卷用倒计时方式扣减时间,如果考生在考试过程中不小心关闭窗口,可以重新进入考试系统,继续刚才的考试,以前保存的答案仍旧存在。 操作题一般来说用于信息化的考试,比如制作Word文档、Excel表格、网页制作等,考生在做完这些文件后上传到服务器上,等待管理员批改。具体上传参数,由最高管理员在后台设定。 在考试结束前一分钟和最后10种,系统会提示 考生保存答案,并提交试卷。    考试的次数由管理员或课程管理员设定。考生可以反复参加考试 (2)、竞赛部分 竞赛试卷可以由管理员出题,也可以由考生自由出题。考生在“练习部分”出“模拟试卷”的时候,可以把试卷类型设置为“竞赛”,让其他考生参加这份“模拟试卷”,进行竞赛。 (2)、练习部分 练习分两种:“分项练习”和“模拟试卷” “分项练习”:主要是针对各个章节,不同的题型进行练习。考生要参加练习,管理员或课程管理员必须首先在后台的“课程管理”——“练习管理”中设置好要练习章节的时间、状态。 练习时,以章为单位,按题型类别反复练习。只有在点击“本章已经练习完”之后,考生才可以在“查询成绩”中看到此章练习的标准答案和自己的答案。如果想再练习一次,请点击“重新练习”。       “模拟试卷”:考生可以按自己的想法出试卷,先设置试卷的属性,再设置各种题型的题量与分值,最后生成试卷。考生练习完即可查看成绩。 2、 成绩查询: (1)、考试部分 考生进入已经考过的试卷,可以了解每一种题型的得分情况。而且还可以深入了解到自己的答案与标准答案之间的差距。 因为试卷中的主观题需要课程管理员批改,可能需要一段时间才能查询到成绩。但如果试卷是由客观题型组成的,管理员或课程管理员就可以在后台的“试卷管理”——“查询方式”中,选择“考完查询”。这样,考生就可以在考试结束后立即看到自己的成绩了。 考生可以浏览整张试卷,并打印已经考过的试卷。 (3)、竞赛部分 和考试部分一样。 (2)、练习部分 “分项练习”只有在点击“本章已经练习完”之后,考生才可以在“查询成绩”中看到此章练习的标准答案和自己的答案。 3、 考试新闻  考生可以了解考试的相关信息,还可以看到公布的成绩。 二、后台管理部分 (一)、课程管理 1、课程管理: 课程分“专业课”、“公共课”和“基础课”。出试卷时,范围可以跨“公共课”。当本课程中如果有试卷呈“打开”状态时,请将此课程“打开”。 2、练习管理(章节管理): 用于设定练习的时间和状态,使用时必须为“打开”状态。如果想把题目录入到相应的章节,请在此添加章节序号。添加章节时必须输入数字,以防出错。“现有题量”显示了本章节所储存的“考试题”和“练习题”的总量。 3、试卷管理: 试卷类型分两类,随机试卷和人工出卷。随机试卷必须在“题型管理”中添加“题量”和“分值”。而人工出题的试卷在添加过程中需要从题库中选择试题,使试题呈“选中”状态,且在“题型管理”中只需填写“分值”即可,系统会自动计算“题量”。 使用试卷时,务必把试卷“打开”。  “题型管理”中的“分值”,除阅读理解外,都是指每道题目的分值。因为阅读理解是以大题为单位选题或是抽题,而每个大题都有不确定个小题,所以大题的总分值无法统计,只能输入小题的“分值”。注意:一旦修改试卷的“题量”和“分值”,将会清空已经考过此试卷的考生数据。 课程管理员最好在考试之前设定好试卷的“题量”和“分值”。 答案的保存方式有两种:整体保存和分部保存。整体保存是考试过程中一次性保存所有题型的试题答案。分部保存是仅
联系方式: 官方网站:http://www.applem2.com 技术论坛:http://bbs.applem2.com   -------------------------------------------------------------------------------- [2012-06-10] 1、[Login] 修正“与服务器失去链接”的错误 2、[M2Server] 修正宝宝无法升级的错误 3、[!Setup.txt] 如职业血条魔法值不对,打开\Mir200\!Setup.txt,将相应数值修改成下面一样即可。 LevelValueOfTaosHPRate=2.5 LevelValueOfWizardHPRate=1.8 LevelValueOfWarrHPRate=4.5 [2012-06-04] 1、[Login] 修正登陆器多开时提示进程被占用的错误 2、[Client] 增加内挂自动挂机功能,在游戏里按F12呼出内挂,设置挂机技能项,按Ctrl+L开启或关闭挂机 3、[Client] 修正合成功能引数据包太大导致功能失效的错误 4、[Client] 修正剑侠界面人物名字位置错误 5、[M2Server] 修正合成功能掉落物品几率设置无效的错误 6、[M2Server] M2控制台的交易NPC配置加入属性转移参数 7、[NPCDesign] 修正传奇目录错误的提示 8、[M2Server] 还原NPC的%价格参数 [2012-05-10] 1、调整登陆器读取客户端补丁模式:Prguse.pak为盛大模式调用,Prguse_.pak为剑侠模式调用 2、扩展 CHECKITEMADDVALUE 装备位置(0..15) 附加属性(0..28) (>,<,=,?) 数量 装备位置加入 -1 参数, 意为装备合成中间位置的装备 3、增加快捷键ALT+R刷新背包 4、更改商店买卖修理需要在商店脚本头部加入头文件才会显示(@buy @sell @repair @s_repair)依次是买、卖、修理、特修 5、增加行会初始人数可在M2上调整,M2--选项--参数设置--游戏选项(1)--行会成员限制 6、商店[Goods]段修改成兼容盛大模式,摆放位置留空的话,系统将依次排列 原顺序为:物品名称 摆放位置 刷新时间(分钟) 数量 目前为:物品名称 数量 刷新时间(分钟) 摆放位置 [2012-05-01] 1、MonGen.txt配置增加了一个参数,为1时表示刷新出来的怪会有无敌模式(即打不死) MonGen配置说明 2、增加经验猪配置方法,具体查看:攻击怪物加经验设置方法 3、增加地图参数:NODEAL禁止交易,NOTHROWITEM禁止丢物品(金币也不可以扔) 4、增加常量读取当前人物帐号 5、更新可采集怪物设置:Race 30 RaceImg 26为可采集怪物 25为宝箱 MP字段为可采集次数,默认为0 6、调整每职业血量和魔法值为正常化 [2012-04-20] 1、物品规则属性中加入装备禁止取下规则,M2--查看--列表信息--物品规则 2、增加取下人物身上装备命令:TakeOffItem 装备位置 (0/1) 1为强制取下, 默认值为0 3、增加检测人物当前攻击的怪物名字:CheckHitMonName 怪物名字 4、增加地图参数:HITMON(@XXX) 当前地图攻击怪物时触发QFunction-0.txt中对应的脚本段 5、怪物数据库的WALK_SPD字段允许为-1:表示当前怪物不移动 6、增加可在物品数据库中设置装备初始发光效果,字段为Effect 发光效果(1-9) 如果想通过脚本取消原本的发光效果,只需将发光效果设成10即可 [2012-04-15] 1、PAK工具增加支持32位真彩素材导入 2、重新调整装备合成功能设置,具体详见:M2--查看--装备合成 按SHIFT键支持批量操作 3、剑侠界面增加装备合成功能,通过人物背包中的“合成”按钮打开 4、增加NPC对话框可支持自定义框架及文字显示范围,并推出相对应NPC对话框可视化编辑工具:自定义NPC对话框 5、登陆器列表配置增加分组上移下移及服务器分区上移下移功能 6、合区工具加入文本合并功能 [2012-03-28] 1、支持盛大最新客户端 2、支持盛大最新装备及特效 3、增加属性转移触发[@MOVEABILITY_OK]和[@MOVEABILITY_FAIL] 扩展装备位置21为待转移装备,22为目标装备 属性转移触发功能 成功触发[@MOVEABILITY_OK],失败触发[@MOVEABILITY_FAIL],放在QFunction-0

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧