本文介绍了如何运行计时器10分钟,然后禁用该按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从以下网站获得了帮助: http://forum.codecall.net/topic/65434-c-working-with-timers/(在其中使用了递减的计数器,但在我的应用中不起作用)

I took help from :http://forum.codecall.net/topic/65434-c-working-with-timers/ (in it a decremented counter is used, but it's not working in my app)

我有一些文本字段和两个按钮:提交和更新.我已经从工具栏实现了一个计时器来更新按钮.

I have some text field and two buttons: submit and update.I have implemented a timer from toolbar to update button.

我希望此计时器运行10分钟,然后禁用更新按钮.但是目前它只运行了2分钟.

I wanted this timer to run for 10 minutes and then disable the update button. But presently it's running for just 2 minutes.

按钮代码:

<asp:Button ID="Btnsave" runat="server" CssClass="bt3dbuttons"
    onclick="Btnsave_Click" OnClientClick="return confirm('Data Submitted')"
    Text="Submit" Width="77px" />

<asp:Timer ID="Timer2" runat="server" ontick="Timer2_Tick">
</asp:Timer>
<asp:Button ID="Butnupdate" runat="server" CssClass="btupbuttons"
    onclick="Btnupdate_Click" Text="Update" visible="false" Width="85px" />

这是计时器的代码:

private System.Timers.Timer aTimer = new System.Timers.Timer(600000)
                                                { AutoReset = false };
protected void Timer2_Tick(object sender, EventArgs e)
{
   aTimer = new System.Timers.Timer(600000);
   aTimer.Interval = 600000;
   double counter = aTimer.Interval;

   counter++;
   if (counter >= 600000)
   {
       Butnupdate.Enabled = false;
       MessageBox.Show("Time Up!");
   }
}

更新按钮的代码:

protected void Btnupdate_Click(object sender, EventArgs e)
{

    string id = Id.Text.Trim();
    string name = Name.Text;
    string project = Project.Text;
    string result = Total.Text;

    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CM_Connection"].ConnectionString))
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;

        try
        {
            //lets check that the user typed the first number
            if (Viva.Text.Length > 1)
            {
                VivaLabel.Text = "Please enter a valid number to add.";
                return;
            }

            //lets check that the user typed the second number
            else if (Presentation.Text.Length > 1)
            {
                PresentationLabel.Text = "Please enter a valid number to add.";
                return;
            }
            else if (Confidence.Text.Length > 1)
            {
                ConfidenceLabel.Text = "Please enter a valid number to add.";
                return;
            }

            else if (System.Text.Length > 1)
            {
                SystemLabel.Text = "Please enter a valid number to add.";
                return;
            }
            //Now we have valid inputs
            //Lets put them into integer values

            int number1 = int.Parse(Viva.Text);
            int number2 = int.Parse(Presentation.Text);
            int number3 = int.Parse(Confidence.Text);
            int number4 = int.Parse(System.Text);
            //Now lets add the numbers
            int total = number1 + number2 + number3 + number4;

            //lets place it into the TextBox3
            Total.Text = total.ToString();

            //  cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = @"UPDATE Result SET Name = @name, Project = @project, Result = @result WHERE ID = @id";
            con.Open();

            cmd.Parameters.AddWithValue("@id", Id.Text.ToString());
            cmd.Parameters.AddWithValue("@name ", Name.Text.ToString());
            cmd.Parameters.AddWithValue("@project ", Project.Text.ToString());
            cmd.Parameters.AddWithValue("@result ", Total.Text.ToString());
            cmd.ExecuteNonQuery();
        }

        catch (Exception ex1)
        {
            //Report error to user in the bottom Label
            MessageBox.Show(ex1.Message);
        }
    }
}

推荐答案

问题已通过以下代码解决:

Problem has been solved by following code:

创建计时器(可以从工具箱使用默认值)设置计时器间隔属性

Create the timer ( default can be used from toolbox)set the timer interval property

<asp:Timer ID="Timer2" runat="server" ontick="Timer2_Tick"
            Interval="600000">
        </asp:Timer>

有关参考,请参见: http://msdn.microsoft.com/en-us/library/system.web.ui.timer.interval.aspx

为计时器创建事件处理程序:

Create the event handler for timer :

protected void Timer2_Tick(object sender, EventArgs e)
        {

            if (timeLeft > 0)
            {
                // Display the new time left
                // by updating the Time Left label.
                timeLeft = timeLeft - 1;
                Label1.Text = timeLeft + " seconds";
            }
            else
            {
                // If the user ran out of time, stop the timer, show
                // a MessageBox, and fill in the answers.
                Timer2.Enabled = false;
                Label1.Text = "Time's up!";
                MessageBox.Show("You didn't finish in time.", "Sorry");

                Butnupdate.Enabled = false;
            }

在您希望计时器启动的按钮中使用以下内容:

use the following in the button on which you want your timer to start:

timeLeft = 600;
                    Label1.Text = DateTime.Now.ToString("HH:mm:ss tt");
                    Timer2.Enabled = true;

如果要显示当前系统时间或当前时间,请使用

If you want to show the current system time or current time use

Label1.Text = DateTime.Now.ToString("HH:mm:ss tt");

我在标签中声明了它以及如何做,上面请看这里: http://msdn.microsoft.com/zh-CN/library/dd492144.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

I declared it into label and how to do it and above please have a look here:http://msdn.microsoft.com/en-us/library/dd492144.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

在这里,我们在10分钟后设置了计时器来禁用按钮:)希望它也能帮助到别人:)

Here we go a timer to disable button after 10 minutes :)Hopes it helps somebody as well :)

这篇关于如何运行计时器10分钟,然后禁用该按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 23:18