2

timer control試験の残り時間を表示するために使用しています。データベースから時間にアクセスしています(たとえば、30分、1時間、2時間)。30あるラベルとmin別のラベルに表示されます。30 分間は表示でき30 min、60 秒後に減分できますが、1 時間と 2 時間はどうすればよいですか? データベースに 1 時間と 2 時間のどの値を保存する必要がありますか。また、時間が分に減ったときに時間を分に変更するにはどうすればよいですかtime left = 0。ボタンのクリックを終了するために送信するにはどうすればよいですか。現在、以下に示すコードを使用しています

public partial class MarksExamStart : Form
{        
    int tik = 0;
    public MarksExamStart(string MarksSelected,string DurationID)
    {
        InitializeComponent();
        label1.Text = conf[2];//showing 30/1/2 in label1
        label2.Text = conf[3];//showing min/hr in label2                
        timer1.Interval = 1000;
        timer1.Start();
    } 
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (sender == timer1)
        {
            tik++;
            if (tik == 60)
            {
                label1.Text = (Convert.ToInt16(label1.Text) - 1).ToString();//decrementing time here
                tik = 0;
            } 
        }
    }
}
4

1 に答える 1

2

時間を 1 分に 1 回だけ刻みたい場合は、間隔を に設定する必要があります60 * 1000

テストの残り時間を表示したい場合は、単純な整数ではなくTimeSpan. ここでは、それについて読んだり、表示方法の例を確認したりできます。

public partial class MarksExamStart : Form
{        
    int tik = 0;
    TimeSpan examTime;

    public MarksExamStart(string MarksSelected,string DurationID)
    {
        InitializeComponent();
        examTime = TimeSpan.FromMinutes(conf[3]); // If that's not double you'll need to parse it and make sure it's in the right format
        label1.Text = conf[2];//showing 30/1/2 in label1
        label2.Text = conf[3];//showing min/hr in label2                
        timer1.Interval = 60 * 1000;
        timer1.Start();
    } 

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (sender == timer1)
        {
            if(examTime.TotalMinutes > 1)
            {
               examTime = examTime.Subtract(TimeSpan.FromMinutes(1));
               label1.Text = examTime.ToString();
            }
            else
            {
               timer.Stop();
               // Show the time ends message
            }
        }

    }  
}
于 2013-08-11T06:51:23.480 に答える