Ejemplo n.º 1
0
 /// <summary>
 /// Lap_Resetボタン押下時イベント
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Lap_Reset_Click(object sender, EventArgs e)
 {
     // 時間計測中の場合
     if (bw.IsBusy)
     {
         int[]  nTimes   = new int[3]; // ここにラップタイムを格納する。[0]:Minutes, [1]:Seconds, [2]:MilliSeconds
         int    nMinutes = 0;          // ラップタイムが何分か判定する。
         double dBuf;                  // この変数に格納してひとつ前のラップタイムとの差を計算する。
         // コンボボックスを活性化する。
         LapTimeList.Enabled = true;
         // ひとつ前のラップタイムとの差をミリセカンドで出す。
         dBuf = (ts.Minutes - PreLapTime[0]) * 1000 * 60 + (ts.Seconds - PreLapTime[1]) * 1000 + (ts.Milliseconds - PreLapTime[2]);
         // 差を秒に変換
         dBuf *= 0.001;
         // 小数点以下はミリセカンドなので、1000倍して下記コンボボックスで出力する。
         nTimes[2] = (int)((dBuf - Math.Floor(dBuf)) * 1000);
         // ミリセカンドは計算終了したので、切り捨てる。
         dBuf = Math.Floor(dBuf);
         // 60秒以上であれば○分×秒の形に直す。
         while (dBuf >= 60)
         {
             dBuf     -= 60;
             nMinutes += 1;
         }
         nTimes[0] = nMinutes;
         nTimes[1] = (int)dBuf;
         // ラップタイムをコンボボックスに追加する。
         LapTimeList.Items.Add(string.Format("{0:D2}:{1:D2}.{2:D3}", nTimes[0], nTimes[1], nTimes[2]));
         // 次のラップタイム計算時にまた使うので、ここに格納しておく。
         PreLapTime[0] = ts.Minutes;
         PreLapTime[1] = ts.Seconds;
         PreLapTime[2] = ts.Milliseconds;
     }
     // 時間計測中でない場合
     else
     {
         // ラップタイムのコンボボックスを非活性化する。
         LapTimeList.Enabled = false;
         // Lap_Resetボタンを非活性化する。
         Lap_Reset.Enabled = false;
         // Lap_Resetボタンのボタン表示を"Lap"に変える。
         Lap_Reset.Text = "Lap";
         // Lap_Resetボタンの色をLapの色に変更する。(黄色っぽい色)
         Lap_Reset.BackColor = Color.FromArgb(255, 255, 128);
         // 時刻表示の数値をリセットする。
         Display.Text = "00:00.000";
         // StartTimeを00:00にリセットする。
         StartTimeReset.PerformClick();
         // コンボボックスに追加したアイテムを全て削除する。
         LapTimeList.Items.Clear();
         // Startボタン押下時刻と現在時刻の差を0にリセットする。
         ts = TimeSpan.Zero;
     }
 }
Ejemplo n.º 2
0
        /// </summary>
        /// キーダウンイベント
        /// ShiftKey押下でStart_Stop
        /// ControlKey押下でLap_Reset
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StopWatch_KeyDown(object sender, KeyEventArgs e)
        {
            // ShiftKey押下でStart_Stop
            if (e.KeyCode == Keys.ShiftKey)
            {
                Start_Stop.PerformClick();
            }

            // ControlKey押下でLap_Reset
            else if (e.KeyCode == Keys.ControlKey)
            {
                Lap_Reset.PerformClick();
            }

            // 'R'押下でインフォメーション表示
            else if (e.KeyCode == Keys.R)
            {
                StartTimeReset.PerformClick();
            }

            // 'F1'押下でトグルスイッチを切り替える。
            else if (e.KeyCode == Keys.F1)
            {
                TglChange(TglSw);
                TglChanged();
            }

            // 'I'押下でインフォメーション表示
            else if (e.KeyCode == Keys.I)
            {
                ShowInfoMsg();
            }

            // Delete押下でStopWatch_Closing
            else if (e.KeyCode == Keys.Delete)
            {
                Close();
            }
        }