1

特定のアクションが発生すると、設定を追加できるVisual studion構成マネージャーを使用して、正確な日付/時刻がmyTimeとして書き込まれるアプリケーションがあります。

これは私の設定です: Properties.Settings.Default.voteTime

アプリケーションが「次の投票リクエストまであと X 時間」と表示されるラベルを表示し始めたらすぐに表示したい

私のコンテキストでは、投票は 12 時間ごとに行う必要があるため、

基本的に、上記の voteTime から始まる 12 時間の残り時間をラベルに表示したいと考えています。

私は多くのテクニックを試しましたが、私はC#の初心者であり、ラベルにデフォルトのテキストが含まれているか空白であるたびに、誰も私のために働きませんでした...

        DateTime voteTime = Properties.Settings.Default.voteTime;
        DateTime startDate = DateTime.Now;

        //Calculate countdown timer.
        TimeSpan t = voteTime - startDate;
        string countDown = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds til launch.", t.Days, t.Hours, t.Minutes, t.Seconds);

上で、それが私が試したもので、label1.text = countDown;と書きました。

前もって感謝します。

4

2 に答える 2

7

どうやってするの:

クラスを使用System.Windows.Forms.Timerして、残り時間を表示し続けることができます。次の手順で実行できます。

タイマーを作成して初期化します。

Timer timer1 = new Timer();

そのイベント メソッドを作成しtick、表示時間を更新する間隔を設定します。

timer1.Tick += timer1_Tick;
timer1.Interval = 1000; //i am setting it for one second

タイマーを開始します。

timer1.Enabled = true;
timer1.Start();

イベント メソッドを作成timer.tickし、毎秒ラベルを更新します。

void timer1_Tick(object sender, EventArgs e)
{
    TimeSpan TimeRemaining = VoteTime - DateTime.Now;
    label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
}

完全なコード:

これが完全なコードです。コピーして貼り付けるだけです:

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Tick += timer1_Tick;
            timer1.Interval = 1000;
            timer1.Enabled = true;
            timer1.Start();
        }

        Timer timer1 = new Timer();

        void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan TimeRemaining = VoteTime - DateTime.Now;
            label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
        }
于 2013-07-07T11:17:58.813 に答える
3

タイマー コントロールを使用して、毎分ラベルを更新する簡単な方法を次に示します。

    TimeSpan TimeLeft = new TimeSpan();
    DateTime voteTime = Properties.Settings.Default.voteTime;      
    public Form3()
    {
        InitializeComponent();
        TimeLeft = voteTime - DateTime.Now;
        label1.Text = TimeLeft.ToString(@"hh\:mm") + " til launch.";
        //This value is in milliseconds.  Adjust this for a different time 
        //interval between updates
        timer1.Interval = 60000;
        timer1.Start();
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        TimeLeft = voteTime - DateTime.Now;
        label1.Text = TimeLeft.ToString(@"hh\:mm") + " til launch.";
    }
于 2013-07-07T05:16:06.073 に答える