private void button1_Click(object sender, EventArgs e)
        {
            int a = Convert.ToInt32(this.textBox1.Text.ToString().Trim());//读入要倒数的数字            for (int i=a ; i >= 0; i--)
            {
                label1.Text = i.ToString(); //delay 1秒
                label1.Refresh();
                System.Threading.Thread.Sleep(1000);
                label1.Refresh();               label1.Text=a.ToString(); //输出显示
            }
            button1.EnabledChanged
        }
效果是点击BUTTON以后 (假设textbox1=10) 开始从10倒数。
因为点击一次BUTTON以后 再次点击BUTTON只能等倒数结束以后才能生效。
我想要的是,在倒数时,在此点击BUTTON,重新开始重10倒数。就是让BUTTON有一个重置效果。
希望大家能帮帮忙,我是个编程菜鸟。也没什么分数。
我认为这个提问板块的初衷是希望大家有个交流的地方,不要为了分数而分数。

解决方案 »

  1.   


    private void button1_Click(object sender, EventArgs e)
            {
                this.timer1.Start();//计时器开始计时
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                SendKeys.Send("\n");//计时器每隔1秒触发一次这个事件,Send这个方法就是向计算机模拟按一次回车。1秒的触发时间是在timer里的一个属性设置的。
            }        private void button2_Click(object sender, EventArgs e)
            {
                this.timer1.Stop();
            }
    c#.net的,就是两个button 和一个timer 别的不需要,你应该能看懂了吧,剩下的都是自动生成的。上面是 每隔几秒自动触发按钮回车事件/
    LZ 可根据修改
    http://tech.ddvip.com/2009-08/1251726126129398.html
      

  2.   


    换成定时器
    private void button3_Click(object sender, EventArgs e)
    {
        timer1.Stop();
        i = Convert.ToInt32(this.textBox1.Text.ToString().Trim()); //读入要倒数的数字
        timer1.Interval = 1000; //delay 1秒
        timer1.Start();
    }int i;
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (i == 0) { timer1.Stop(); return; }
        label1.Text = i.ToString();  
        i--;
    }
      

  3.   

    3楼的去掉多余一行:timer1.Stop();
    改成:private void button3_Click(object sender, EventArgs e)
    {
        i = Convert.ToInt32(this.textBox1.Text.ToString().Trim()); //读入要倒数的数字
        timer1.Interval = 1000; //delay 1秒
        timer1.Start();
    }int i;
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (i == 0) { timer1.Stop(); return; }
        label1.Text = i.ToString();  
        i--;
    }
      

  4.   

    謝謝樓上的2位,真的非常感謝,憋了一天,原來還有TIMER這個控件還有一個問題 
    private void button3_Click(object sender, EventArgs e)
    {
        timer1.Stop();
        i = Convert.ToInt32(this.textBox1.Text.ToString().Trim()); //读入要倒数的数字
        timer1.Interval = 1000; //delay 1秒
        timer1.Start();
    }int i;  //    爲什麽I 能接收button3_Click() 裏面的數據? int i 的作用域應該是全局的,局部變量會改變I的值?private void timer1_Tick(object sender, EventArgs e)
    {
        if (i == 0) { timer1.Stop(); return; }
        label1.Text = i.ToString();  
        i--;
    }
      

  5.   


    int i;  等效于 private int i;这是C#基础知识:
    public     可以被外部成员调用 
    internal   可以在当前项目调用   
    protected  只能在被类的成员和该类的子类调用   
    private    只能在被类的成员调用private 私有成员只有在声明它们的类和结构体中才是可访问的,在类外面不访问。 而public可以在类外面访问。
      

  6.   

    另外,private 下级的可以访问上级的。
      

  7.   

    大开眼界啊。timer1_Tick,看到过,没用过,学习啦