Stopwatch クラス
アセンブリ: System (system.dll 内)
構文
解説
Stopwatch インスタンスは、1 つの間隔の経過時間、または複数の間隔の経過時間の合計を計測できます。一般的な Stopwatch のシナリオでは、Start メソッドを呼び出してから、最終的に Stop メソッドを呼び出し、Elapsed プロパティを使用して経過時間を確認します。
Stopwatch インスタンスには、実行中と停止中の状態があります。Stopwatch の現在の状態を判断するには、IsRunning を使用します。経過時間の計測を開始するには、Start を使用します。経過時間の計測を停止するには、Stop を使用します。経過時間の値を問い合わせるには、Elapsed、ElapsedMilliseconds、または ElapsedTicks の各プロパティを使用します。インスタンスの実行中または停止中に経過時間のプロパティを問い合わせることができます。経過時間のプロパティは、Stopwatch の実行中は徐々に増加し、インスタンスの停止中は変化しません。
既定では、Stopwatch インスタンスの経過時間の値は、計測されたすべての時間間隔の合計と等しくなります。Start を呼び出すたびに、累積経過時間のカウントが開始されます。Stop を呼び出すたびに、現在の間隔計測を終了して、累積経過時間の値を固定します。既存の Stopwatch インスタンスの累積経過時間を消去するには、Reset メソッドを使用します。
Stopwatch は、基になるタイマ機構のタイマ刻みをカウントして、経過時間を計測します。インストールされているハードウェアおよびオペレーティング システムが高解像力のパフォーマンス カウンタをサポートしている場合、Stopwatch クラスはそのカウンタを使用して経過時間を計測します。それ以外の場合、Stopwatch クラスはシステム タイマを使用して経過時間を計測します。Stopwatch タイミング実装の精度および解像力を判断するには、Frequency フィールドおよび IsHighResolution フィールドを使用します。
Stopwatch クラスは、マネージ コード内のタイミング関連パフォーマンス カウンタの操作を支援します。特に、Frequency フィールドおよび GetTimestamp メソッドは、アンマネージ Win32 API QueryPerformanceFrequency および QueryPerformanceCounter の代わりに使用できます。
メモ |
---|
マルチプロセッサ コンピュータでは、スレッドが実行されているプロセッサは問題にはなりません。ただし、BIOS または HAL (Hardware Abstraction Layer) のバグにより、プロセッサごとにタイミング結果が異なる可能性があります。スレッドのプロセッサ アフィニティを指定するには、ProcessThread.ProcessorAffinity メソッドを使用します。 |
Stopwatch クラスを使用して、Windows フォーム アプリケーションでストップウォッチ操作を実装する例を次に示します。
Imports System Imports System.Diagnostics Imports System.Windows.Forms Imports System.Drawing Imports System.Drawing.Drawing2D Public Class formMain Inherits System.Windows.Forms.Form Dim stopWatch As StopWatch Dim captureLap As Boolean Public Sub New() MyBase.New() stopwatch = New StopWatch() captureLap = False InitializeComponent() End Sub ' Override dispose method to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Shared Sub Main() Application.Run(New formMain) End Sub ' Define event handlers for various form events. Private Sub buttonStartStop_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles buttonStartStop.Click ' When the timer is stopped, this button event starts ' the timer. When the timer is running, this button ' event stops the timer. If stopWatch.IsRunning Then ' Stop the timer; show the start and reset buttons. stopWatch.Stop() buttonStartStop.Text = "Start" buttonLapReset.Text = "Reset" Else ' Start the timer; show the stop and lap buttons. stopWatch.Start() buttonStartStop.Text = "Stop" buttonLapReset.Text = "Lap" labelLap.Visible = False labelLapPrompt.Visible = False End If End Sub Private Sub buttonLapReset_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles buttonLapReset.Click ' When the timer is stopped, this button event resets ' the timer. When the timer is running, this button ' event captures a lap time. If buttonLapReset.Text = "Lap" Then If stopWatch.IsRunning Then ' Set the object state so that the next ' timer tick will display the lap time value. captureLap = True labelLap.Visible = True labelLapPrompt.Visible = True End If Else ' Reset the stopwatch and the displayed timer value. labelTime.Text = "00:00:00.00" buttonLapReset.Text = "Lap" stopWatch.Reset() labelLap.Visible = False labelLapPrompt.Visible = False End If End Sub Private Sub timerMain_Tick(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles timerMain.Tick ' When the timer is running, update the displayed timer ' value for each tick event. If stopWatch.IsRunning Then ' Get the elapsed time as a TimeSpan value. Dim ts As TimeSpan = stopWatch.Elapsed ' Format and display the TimeSpan value. labelTime.Text = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", _ ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds/10) ' If the user has just clicked the "Lap" button , ' then capture the current time for the lap time. If captureLap Then labelLap.Text = labelTime.Text captureLap = False End If End If End Sub Private Sub labelExit_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles labelExit.Click ' Close the form when the user clicks the close button. Me.Close() End Sub Private Sub labelTopLeft_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles labelTopLeft.Click Me.Location = New Point(0, 0) End Sub Private Sub labelBottomLeft_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles labelBottomLeft.Click Me.Location = New Point(0, Screen.PrimaryScreen.WorkingArea.Height - Me.Height) End Sub Private Sub labelTopRight_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles labelTopRight.Click Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, 0) End Sub Private Sub labelBottomRight_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles labelBottomRight.Click Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height) End Sub Private Sub formMain_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Click Me.Location = New Point((Screen.PrimaryScreen.WorkingArea.Width - Me.Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - Me.Height) / 2) End Sub Private Sub formMain_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load DrawForm() Me.Location = New Point((Screen.PrimaryScreen.WorkingArea.Width - Me.Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - Me.Height) / 2) End Sub Private Sub DrawForm() ' Shape the viewer form with rounded edges. Dim GraphicsPath As New Drawing2D.GraphicsPath GraphicsPath.AddArc(0, 0, 100, 100, 180, 90) GraphicsPath.AddArc(100, 0, 100, 100, 270, 90) GraphicsPath.AddArc(100, 100, 100, 100, 0, 90) GraphicsPath.AddArc(0, 100, 100, 100, 90, 90) Me.Region = New Region(GraphicsPath) End Sub Private components As System.ComponentModel.IContainer Private WithEvents labelExit As System.Windows.Forms.Label Private WithEvents labelTime As System.Windows.Forms.Label Private WithEvents timerMain As System.Windows.Forms.Timer Private WithEvents buttonLapReset As System.Windows.Forms.Button Private WithEvents buttonStartStop As System.Windows.Forms.Button Private WithEvents labelLapPrompt As System.Windows.Forms.Label Private WithEvents labelTimePrompt As System.Windows.Forms.Label Private WithEvents labelLap As System.Windows.Forms.Label Private WithEvents labelBottomLeft As System.Windows.Forms.Label Private WithEvents labelBottomRight As System.Windows.Forms.Label Private WithEvents labelTopLeft As System.Windows.Forms.Label Private WithEvents labelTopRight As System.Windows.Forms.Label <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Me.labelExit = New System.Windows.Forms.Label Me.labelTime = New System.Windows.Forms.Label Me.buttonLapReset = New System.Windows.Forms.Button Me.timerMain = New System.Windows.Forms.Timer(Me.components) Me.labelLap = New System.Windows.Forms.Label Me.buttonStartStop = New System.Windows.Forms.Button Me.labelLapPrompt = New System.Windows.Forms.Label Me.labelTimePrompt = New System.Windows.Forms.Label Me.labelBottomLeft = New System.Windows.Forms.Label Me.labelBottomRight = New System.Windows.Forms.Label Me.labelTopLeft = New System.Windows.Forms.Label Me.labelTopRight = New System.Windows.Forms.Label Me.SuspendLayout() ' 'labelExit ' Me.labelExit.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D Me.labelExit.ForeColor = System.Drawing.Color.Aqua Me.labelExit.Location = New System.Drawing.Point(160, 16) Me.labelExit.Name = "labelExit" Me.labelExit.Size = New System.Drawing.Size(20, 20) Me.labelExit.TabIndex = 0 Me.labelExit.Text = "x" Me.labelExit.TextAlign = System.Drawing.ContentAlignment.BottomCenter ' 'labelTime ' Me.labelTime.Font = New System.Drawing.Font("Comic Sans MS", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.labelTime.ForeColor = System.Drawing.Color.Yellow Me.labelTime.Location = New System.Drawing.Point(-3, 56) Me.labelTime.Name = "labelTime" Me.labelTime.Size = New System.Drawing.Size(208, 32) Me.labelTime.TabIndex = 1 Me.labelTime.Text = "00:00:00.00" ' 'buttonLapReset ' Me.buttonLapReset.Font = New System.Drawing.Font("Comic Sans MS", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.buttonLapReset.ForeColor = System.Drawing.Color.Yellow Me.buttonLapReset.Location = New System.Drawing.Point(104, 160) Me.buttonLapReset.Name = "buttonLapReset" Me.buttonLapReset.Size = New System.Drawing.Size(72, 32) Me.buttonLapReset.TabIndex = 4 Me.buttonLapReset.Text = "Lap" ' 'timerMain ' Me.timerMain.Enabled = True Me.timerMain.Interval = 50 ' 'labelLap ' Me.labelLap.Font = New System.Drawing.Font("Comic Sans MS", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.labelLap.ForeColor = System.Drawing.Color.Yellow Me.labelLap.Location = New System.Drawing.Point(0, 120) Me.labelLap.Name = "labelLap" Me.labelLap.Size = New System.Drawing.Size(200, 32) Me.labelLap.TabIndex = 5 Me.labelLap.Visible = False ' 'buttonStartStop ' Me.buttonStartStop.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.buttonStartStop.Font = New System.Drawing.Font("Comic Sans MS", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.buttonStartStop.ForeColor = System.Drawing.Color.Yellow Me.buttonStartStop.Location = New System.Drawing.Point(24, 160) Me.buttonStartStop.Name = "buttonStartStop" Me.buttonStartStop.Size = New System.Drawing.Size(72, 32) Me.buttonStartStop.TabIndex = 2 Me.buttonStartStop.Text = "Start" ' 'labelLapPrompt ' Me.labelLapPrompt.Font = New System.Drawing.Font("Comic Sans MS", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.labelLapPrompt.ForeColor = System.Drawing.Color.Yellow Me.labelLapPrompt.Location = New System.Drawing.Point(8, 96) Me.labelLapPrompt.Name = "labelLapPrompt" Me.labelLapPrompt.Size = New System.Drawing.Size(96, 24) Me.labelLapPrompt.TabIndex = 6 Me.labelLapPrompt.Text = "Lap Time" Me.labelLapPrompt.Visible = False ' 'labelTimePrompt ' Me.labelTimePrompt.Font = New System.Drawing.Font("Comic Sans MS", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.labelTimePrompt.ForeColor = System.Drawing.Color.Yellow Me.labelTimePrompt.Location = New System.Drawing.Point(0, 24) Me.labelTimePrompt.Name = "labelTimePrompt" Me.labelTimePrompt.Size = New System.Drawing.Size(88, 24) Me.labelTimePrompt.TabIndex = 7 Me.labelTimePrompt.Text = "Time" ' 'labelBottomLeft ' Me.labelBottomLeft.BackColor = System.Drawing.Color.Black Me.labelBottomLeft.ForeColor = System.Drawing.Color.Black Me.labelBottomLeft.Location = New System.Drawing.Point(0, 176) Me.labelBottomLeft.Name = "labelBottomLeft" Me.labelBottomLeft.Size = New System.Drawing.Size(16, 16) Me.labelBottomLeft.TabIndex = 8 ' 'labelBottomRight ' Me.labelBottomRight.BackColor = System.Drawing.Color.Black Me.labelBottomRight.ForeColor = System.Drawing.Color.Black Me.labelBottomRight.Location = New System.Drawing.Point(184, 176) Me.labelBottomRight.Name = "labelBottomRight" Me.labelBottomRight.Size = New System.Drawing.Size(16, 16) Me.labelBottomRight.TabIndex = 9 ' 'labelTopLeft ' Me.labelTopLeft.BackColor = System.Drawing.Color.Black Me.labelTopLeft.ForeColor = System.Drawing.Color.Black Me.labelTopLeft.Location = New System.Drawing.Point(0, 8) Me.labelTopLeft.Name = "labelTopLeft" Me.labelTopLeft.Size = New System.Drawing.Size(16, 16) Me.labelTopLeft.TabIndex = 10 ' 'labelTopRight ' Me.labelTopRight.BackColor = System.Drawing.Color.Black Me.labelTopRight.ForeColor = System.Drawing.Color.Black Me.labelTopRight.Location = New System.Drawing.Point(184, 8) Me.labelTopRight.Name = "labelTopRight" Me.labelTopRight.Size = New System.Drawing.Size(16, 16) Me.labelTopRight.TabIndex = 11 ' 'formMain ' Me.AutoScaleBaseSize = New System.Drawing.Size(9, 22) Me.BackColor = System.Drawing.Color.Navy Me.ClientSize = New System.Drawing.Size(200, 200) Me.Controls.Add(Me.labelTopRight) Me.Controls.Add(Me.labelTopLeft) Me.Controls.Add(Me.labelBottomRight) Me.Controls.Add(Me.labelBottomLeft) Me.Controls.Add(Me.labelTimePrompt) Me.Controls.Add(Me.labelLapPrompt) Me.Controls.Add(Me.labelLap) Me.Controls.Add(Me.buttonLapReset) Me.Controls.Add(Me.buttonStartStop) Me.Controls.Add(Me.labelTime) Me.Controls.Add(Me.labelExit) Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None Me.Name = "formMain" Me.Text = "StopWatch Sample" Me.TopMost = True Me.ResumeLayout(False) End Sub End Class
using System; using System.Diagnostics; using System.Windows.Forms; using System.Drawing; using System.Drawing.Drawing2D; namespace StopWatchSample { public class FormMain : System.Windows.Forms.Form { private Stopwatch stopWatch; private Boolean captureLap; public FormMain() { stopWatch = new Stopwatch(); captureLap = false; InitializeComponent(); } protected override void Dispose( bool disposing ) { base.Dispose( disposing ); } [STAThread] static void Main() { Application.Run(new FormMain()); } // Define event handlers for various form events. private void buttonStartStop_Click(System.Object sender, System.EventArgs e) { // When the timer is stopped, this button event starts // the timer. When the timer is running, this button // event stops the timer. if (stopWatch.IsRunning) { // Stop the timer; show the start and reset buttons. stopWatch.Stop(); buttonStartStop.Text = "Start"; buttonLapReset.Text = "Reset"; } else { // Start the timer; show the stop and lap buttons. stopWatch.Start(); buttonStartStop.Text = "Stop"; buttonLapReset.Text = "Lap"; labelLap.Visible = false; labelLapPrompt.Visible = false; } } private void buttonLapReset_Click(System.Object sender, System.EventArgs e) { // When the timer is stopped, this button event resets // the timer. When the timer is running, this button // event captures a lap time. if (buttonLapReset.Text == "Lap") { if (stopWatch.IsRunning) { // Set the object state so that the next // timer tick will display the lap time value. captureLap = true; labelLap.Visible = true; labelLapPrompt.Visible = true; } } else { // Reset the stopwatch and the displayed timer value. labelLap.Visible = false; labelLapPrompt.Visible = false; labelTime.Text = "00:00:00.00"; buttonLapReset.Text = "Lap"; stopWatch.Reset(); } } private void timerMain_Tick(System.Object sender, System.EventArgs e) { // When the timer is running, update the displayed timer // value for each tick event. if (stopWatch.IsRunning) { // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. labelTime.Text = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds/10); // If the user has just clicked the "Lap" button, // then capture the current time for the lap time. if (captureLap) { labelLap.Text = labelTime.Text; captureLap = false; } } } private void labelExit_Click(System.Object sender, System.EventArgs e) { // Close the form when the user clicks the close button. this.Close(); } private void labelTopLeft_Click(object sender, System.EventArgs e) { this.Location = new Point(0, 0); } private void labelBottomLeft_Click(object sender, System.EventArgs e) { this.Location = new Point(0, Screen.PrimaryScreen.WorkingArea.Height - this.Height); } private void labelTopRight_Click(object sender, System.EventArgs e) { this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, 0); } private void labelBottomRight_Click(object sender, System.EventArgs e) { this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, Screen.PrimaryScreen.WorkingArea.Height - this.Height); } private void FormMain_Click(object sender, System.EventArgs e) { this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2); } private void FormMain_Load(object sender, System.EventArgs e) { // Shape the viewer form with rounded edges. DrawForm(); this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2); } private void DrawForm() { // Shape the viewer form with rounded edges. GraphicsPath graphicsPath = new GraphicsPath(); graphicsPath.AddArc(0, 0, 100, 100, 180, 90); graphicsPath.AddArc(100, 0, 100, 100, 270, 90); graphicsPath.AddArc(100, 100, 100, 100, 0, 90); graphicsPath.AddArc(0, 100, 100, 100, 90, 90); this.Region = new Region(graphicsPath); } // Define various form elements. private System.ComponentModel.Container components = null; private System.Windows.Forms.Label labelExit; private System.Windows.Forms.Label labelTime; private System.Windows.Forms.Timer timerMain; private System.Windows.Forms.Button buttonLapReset; private System.Windows.Forms.Button buttonStartStop; private System.Windows.Forms.Label labelLapPrompt; private System.Windows.Forms.Label labelTimePrompt; private System.Windows.Forms.Label labelLap; private System.Windows.Forms.Label labelBottomLeft; private System.Windows.Forms.Label labelBottomRight; private System.Windows.Forms.Label labelTopLeft; private System.Windows.Forms.Label labelTopRight; private void InitializeComponent() { this.SuspendLayout(); this.components = new System.ComponentModel.Container(); this.labelExit = new System.Windows.Forms.Label(); this.labelTime = new System.Windows.Forms.Label(); this.buttonLapReset = new System.Windows.Forms.Button(); this.timerMain = new System.Windows.Forms.Timer(this.components); this.labelLap = new System.Windows.Forms.Label(); this.buttonStartStop = new System.Windows.Forms.Button(); this.labelLapPrompt = new System.Windows.Forms.Label(); this.labelTimePrompt = new System.Windows.Forms.Label(); this.labelBottomLeft = new System.Windows.Forms.Label(); this.labelBottomRight = new System.Windows.Forms.Label(); this.labelTopLeft = new System.Windows.Forms.Label(); this.labelTopRight = new System.Windows.Forms.Label(); // labelExit this.labelExit.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.labelExit.ForeColor = System.Drawing.Color.Aqua; this.labelExit.Location = new System.Drawing.Point(160, 16); this.labelExit.Name = "labelExit"; this.labelExit.Size = new System.Drawing.Size(20, 20); this.labelExit.TabIndex = 0; this.labelExit.Text = "x"; this.labelExit.TextAlign = System.Drawing.ContentAlignment.BottomCenter; this.labelExit.Click += new System.EventHandler(this.labelExit_Click); // labelTime this.labelTime.Font = new System.Drawing.Font("Comic Sans MS", 18.0F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); this.labelTime.ForeColor = System.Drawing.Color.Yellow; this.labelTime.Location = new System.Drawing.Point(-3, 56); this.labelTime.Name = "labelTime"; this.labelTime.Size = new System.Drawing.Size(208, 32); this.labelTime.TabIndex = 1; this.labelTime.Text = "00:00:00.00"; // buttonLapReset this.buttonLapReset.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); this.buttonLapReset.ForeColor = System.Drawing.Color.Yellow; this.buttonLapReset.Location = new System.Drawing.Point(104, 160); this.buttonLapReset.Name = "buttonLapReset"; this.buttonLapReset.Size = new System.Drawing.Size(72, 32); this.buttonLapReset.TabIndex = 4; this.buttonLapReset.Text = "Lap"; this.buttonLapReset.Click += new System.EventHandler(this.buttonLapReset_Click); // timerMain this.timerMain.Enabled = true; this.timerMain.Interval = 50; this.timerMain.Tick += new System.EventHandler(this.timerMain_Tick); // labelLap this.labelLap.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.labelLap.ForeColor = System.Drawing.Color.Yellow; this.labelLap.Location = new System.Drawing.Point(0, 120); this.labelLap.Name = "labelLap"; this.labelLap.Size = new System.Drawing.Size(200, 32); this.labelLap.TabIndex = 5; this.labelLap.Visible = false; // buttonStartStop this.buttonStartStop.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.buttonStartStop.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point); this.buttonStartStop.ForeColor = System.Drawing.Color.Yellow; this.buttonStartStop.Location = new System.Drawing.Point(24, 160); this.buttonStartStop.Name = "buttonStartStop"; this.buttonStartStop.Size = new System.Drawing.Size(72, 32); this.buttonStartStop.TabIndex = 2; this.buttonStartStop.Text = "Start"; this.buttonStartStop.Click += new System.EventHandler(this.buttonStartStop_Click); // labelLapPrompt this.labelLapPrompt.Font = new System.Drawing.Font("Comic Sans MS", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.labelLapPrompt.ForeColor = System.Drawing.Color.Yellow; this.labelLapPrompt.Location = new System.Drawing.Point(8, 96); this.labelLapPrompt.Name = "labelLapPrompt"; this.labelLapPrompt.Size = new System.Drawing.Size(56, 24); this.labelLapPrompt.TabIndex = 6; this.labelLapPrompt.Text = "Lap Time"; this.labelLapPrompt.Visible = false; // labelTimePrompt this.labelTimePrompt.Font = new System.Drawing.Font("Comic Sans MS", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.labelTimePrompt.ForeColor = System.Drawing.Color.Yellow; this.labelTimePrompt.Location = new System.Drawing.Point(0, 24); this.labelTimePrompt.Name = "labelTimePrompt"; this.labelTimePrompt.Size = new System.Drawing.Size(88, 24); this.labelTimePrompt.TabIndex = 7; this.labelTimePrompt.Text = "Time"; // labelBottomLeft this.labelBottomLeft.BackColor = System.Drawing.Color.Black; this.labelBottomLeft.ForeColor = System.Drawing.Color.Black; this.labelBottomLeft.Location = new System.Drawing.Point(0, 176); this.labelBottomLeft.Name = "labelBottomLeft"; this.labelBottomLeft.Size = new System.Drawing.Size(16, 16); this.labelBottomLeft.TabIndex = 8; this.labelBottomLeft.Click += new System.EventHandler(this.labelBottomLeft_Click); // labelBottomRight this.labelBottomRight.BackColor = System.Drawing.Color.Black; this.labelBottomRight.ForeColor = System.Drawing.Color.Black; this.labelBottomRight.Location = new System.Drawing.Point(184, 176); this.labelBottomRight.Name = "labelBottomRight"; this.labelBottomRight.Size = new System.Drawing.Size(16, 16); this.labelBottomRight.TabIndex = 9; this.labelBottomRight.Click += new System.EventHandler(this.labelBottomRight_Click); // labelTopLeft this.labelTopLeft.BackColor = System.Drawing.Color.Black; this.labelTopLeft.ForeColor = System.Drawing.Color.Black; this.labelTopLeft.Location = new System.Drawing.Point(0, 8); this.labelTopLeft.Name = "labelTopLeft"; this.labelTopLeft.Size = new System.Drawing.Size(16, 16); this.labelTopLeft.TabIndex = 10; this.labelTopLeft.Click += new System.EventHandler(this.labelTopLeft_Click); // labelTopRight this.labelTopRight.BackColor = System.Drawing.Color.Black; this.labelTopRight.ForeColor = System.Drawing.Color.Black; this.labelTopRight.Location = new System.Drawing.Point(184, 8); this.labelTopRight.Name = "labelTopRight"; this.labelTopRight.Size = new System.Drawing.Size(16, 16); this.labelTopRight.TabIndex = 11; this.labelTopRight.Click += new System.EventHandler(this.labelTopRight_Click); // FormMain this.AutoScaleBaseSize = new System.Drawing.Size(9, 22); this.BackColor = System.Drawing.Color.Navy; this.ClientSize = new System.Drawing.Size(200, 200); this.Controls.Add(this.labelTopRight); this.Controls.Add(this.labelTopLeft); this.Controls.Add(this.labelBottomRight); this.Controls.Add(this.labelBottomLeft); this.Controls.Add(this.labelTimePrompt); this.Controls.Add(this.labelLapPrompt); this.Controls.Add(this.labelLap); this.Controls.Add(this.buttonLapReset); this.Controls.Add(this.buttonStartStop); this.Controls.Add(this.labelTime); this.Controls.Add(this.labelExit); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "FormMain"; this.Text = "StopWatch Sample"; this.TopMost = true; this.Load += new System.EventHandler(this.FormMain_Load); this.ResumeLayout(false); } } }
#using <System.dll> #using <System.Drawing.dll> #using <System.Windows.Forms.dll> using namespace System; using namespace System::Diagnostics; using namespace System::Windows::Forms; using namespace System::Drawing; using namespace System::Drawing::Drawing2D; // The following class represents a simple stopwatch form with // start, stop, reset, and lap time functions. public ref class FormMain: public System::Windows::Forms::Form { private: Stopwatch^ stopWatch; Boolean captureLap; public: FormMain() { stopWatch = gcnew Stopwatch; captureLap = false; InitializeComponent(); } public: ~FormMain() { } private: // Define event handlers for various form events. void buttonStartStop_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // When the timer is stopped, this button event starts // the timer. When the timer is running, this button // event stops the timer. if ( stopWatch->IsRunning ) { // Stop the timer; show the start and reset buttons. stopWatch->Stop(); buttonStartStop->Text = "Start"; buttonLapReset->Text = "Reset"; } else { // Start the timer; show the stop and lap buttons. stopWatch->Start(); buttonStartStop->Text = "Stop"; buttonLapReset->Text = "Lap"; labelLap->Visible = false; labelLapPrompt->Visible = false; } } void buttonLapReset_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // When the timer is stopped, this button event resets // the timer. When the timer is running, this button // event captures a lap time. if ( buttonLapReset->Text->Equals( "Lap" ) ) { if ( stopWatch->IsRunning ) { // Set set the object state so that the next // timer tick will display the lap time value. captureLap = true; labelLap->Visible = true; labelLapPrompt->Visible = true; } } else { // Reset the stopwatch and the displayed timer value. labelLap->Visible = false; labelLapPrompt->Visible = false; labelTime->Text = "00:00:00.00"; buttonLapReset->Text = "Lap"; stopWatch->Reset(); } } void timerMain_Tick( System::Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // When the timer is running, update the displayed timer // value for each tick event. if ( stopWatch->IsRunning ) { // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch->Elapsed; // Format and display the TimeSpan value. labelTime->Text = String::Format( "{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10 ); // If the user has just clicked the "Lap" button , // then capture the current time for the lap time. if ( captureLap ) { labelLap->Text = labelTime->Text; captureLap = false; } } } void labelExit_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // Close the form when the user clicks the close button. this->Close(); } void labelTopLeft_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { this->Location = Point(0,0); } void labelBottomLeft_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { this->Location = Point(0,Screen::PrimaryScreen->WorkingArea.Height - this->Height); } void labelTopRight_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { this->Location = Point(Screen::PrimaryScreen->WorkingArea.Width - this->Width,0); } void labelBottomRight_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { this->Location = Point(Screen::PrimaryScreen->WorkingArea.Width - this->Width,Screen::PrimaryScreen->WorkingArea.Height - this->Height); } void FormMain_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { this->Location = Point((Screen::PrimaryScreen->WorkingArea.Width - this->Width) / 2,(Screen::PrimaryScreen->WorkingArea.Height - this->Height) / 2); } void FormMain_Load( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { // Shape the viewer form with rounded edges. DrawForm(); this->Location = Point((Screen::PrimaryScreen->WorkingArea.Width - this->Width) / 2,(Screen::PrimaryScreen->WorkingArea.Height - this->Height) / 2); } void DrawForm() { // Shape the viewer form with rounded edges. GraphicsPath^ graphicsPath = gcnew GraphicsPath; graphicsPath->AddArc( 0, 0, 100, 100, 180, 90 ); graphicsPath->AddArc( 100, 0, 100, 100, 270, 90 ); graphicsPath->AddArc( 100, 100, 100, 100, 0, 90 ); graphicsPath->AddArc( 0, 100, 100, 100, 90, 90 ); this->Region = gcnew System::Drawing::Region( graphicsPath ); } // Define various form elements. System::ComponentModel::Container^ components; System::Windows::Forms::Label ^ labelExit; System::Windows::Forms::Label ^ labelTime; System::Windows::Forms::Timer^ timerMain; System::Windows::Forms::Button^ buttonLapReset; System::Windows::Forms::Button^ buttonStartStop; System::Windows::Forms::Label ^ labelLapPrompt; System::Windows::Forms::Label ^ labelTimePrompt; System::Windows::Forms::Label ^ labelLap; System::Windows::Forms::Label ^ labelBottomLeft; System::Windows::Forms::Label ^ labelBottomRight; System::Windows::Forms::Label ^ labelTopLeft; System::Windows::Forms::Label ^ labelTopRight; void InitializeComponent() { this->SuspendLayout(); this->components = gcnew System::ComponentModel::Container; this->labelExit = gcnew System::Windows::Forms::Label; this->labelTime = gcnew System::Windows::Forms::Label; this->buttonLapReset = gcnew System::Windows::Forms::Button; this->timerMain = gcnew System::Windows::Forms::Timer( this->components ); this->labelLap = gcnew System::Windows::Forms::Label; this->buttonStartStop = gcnew System::Windows::Forms::Button; this->labelLapPrompt = gcnew System::Windows::Forms::Label; this->labelTimePrompt = gcnew System::Windows::Forms::Label; this->labelBottomLeft = gcnew System::Windows::Forms::Label; this->labelBottomRight = gcnew System::Windows::Forms::Label; this->labelTopLeft = gcnew System::Windows::Forms::Label; this->labelTopRight = gcnew System::Windows::Forms::Label; // labelExit this->labelExit->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; this->labelExit->ForeColor = System::Drawing::Color::Aqua; this->labelExit->Location = System::Drawing::Point( 160, 16 ); this->labelExit->Name = "labelExit"; this->labelExit->Size = System::Drawing::Size( 20, 20 ); this->labelExit->TabIndex = 0; this->labelExit->Text = "x"; this->labelExit->TextAlign = System::Drawing::ContentAlignment::BottomCenter; this->labelExit->Click += gcnew System::EventHandler( this, &FormMain::labelExit_Click ); // labelTime this->labelTime->Font = gcnew System::Drawing::Font( "Comic Sans MS",18.0F,System::Drawing::FontStyle::Bold,System::Drawing::GraphicsUnit::Point ); this->labelTime->ForeColor = System::Drawing::Color::Yellow; this->labelTime->Location = System::Drawing::Point( -3, 56 ); this->labelTime->Name = "labelTime"; this->labelTime->Size = System::Drawing::Size( 208, 32 ); this->labelTime->TabIndex = 1; this->labelTime->Text = "00:00:00.00"; // buttonLapReset this->buttonLapReset->Font = gcnew System::Drawing::Font( "Comic Sans MS",14.25F,System::Drawing::FontStyle::Bold,System::Drawing::GraphicsUnit::Point ); this->buttonLapReset->ForeColor = System::Drawing::Color::Yellow; this->buttonLapReset->Location = System::Drawing::Point( 104, 160 ); this->buttonLapReset->Name = "buttonLapReset"; this->buttonLapReset->Size = System::Drawing::Size( 72, 32 ); this->buttonLapReset->TabIndex = 4; this->buttonLapReset->Text = "Lap"; this->buttonLapReset->Click += gcnew System::EventHandler( this, &FormMain::buttonLapReset_Click ); // timerMain this->timerMain->Enabled = true; this->timerMain->Interval = 50; this->timerMain->Tick += gcnew System::EventHandler( this, &FormMain::timerMain_Tick ); // labelLap this->labelLap->Font = gcnew System::Drawing::Font( "Comic Sans MS",14.25F,System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point ); this->labelLap->ForeColor = System::Drawing::Color::Yellow; this->labelLap->Location = System::Drawing::Point( 0, 120 ); this->labelLap->Name = "labelLap"; this->labelLap->Size = System::Drawing::Size( 200, 32 ); this->labelLap->TabIndex = 5; this->labelLap->Visible = false; // buttonStartStop this->buttonStartStop->FlatStyle = System::Windows::Forms::FlatStyle::Flat; this->buttonStartStop->Font = gcnew System::Drawing::Font( "Comic Sans MS",14.25F,System::Drawing::FontStyle::Bold,System::Drawing::GraphicsUnit::Point ); this->buttonStartStop->ForeColor = System::Drawing::Color::Yellow; this->buttonStartStop->Location = System::Drawing::Point( 24, 160 ); this->buttonStartStop->Name = "buttonStartStop"; this->buttonStartStop->Size = System::Drawing::Size( 72, 32 ); this->buttonStartStop->TabIndex = 2; this->buttonStartStop->Text = "Start"; this->buttonStartStop->Click += gcnew System::EventHandler( this, &FormMain::buttonStartStop_Click ); // labelLapPrompt this->labelLapPrompt->Font = gcnew System::Drawing::Font( "Comic Sans MS",14.25F,System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point ); this->labelLapPrompt->ForeColor = System::Drawing::Color::Yellow; this->labelLapPrompt->Location = System::Drawing::Point( 8, 96 ); this->labelLapPrompt->Name = "labelLapPrompt"; this->labelLapPrompt->Size = System::Drawing::Size( 56, 24 ); this->labelLapPrompt->TabIndex = 6; this->labelLapPrompt->Text = "Lap Time"; this->labelLapPrompt->Visible = false; // labelTimePrompt this->labelTimePrompt->Font = gcnew System::Drawing::Font( "Comic Sans MS",15.75F,System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point ); this->labelTimePrompt->ForeColor = System::Drawing::Color::Yellow; this->labelTimePrompt->Location = System::Drawing::Point( 0, 24 ); this->labelTimePrompt->Name = "labelTimePrompt"; this->labelTimePrompt->Size = System::Drawing::Size( 88, 24 ); this->labelTimePrompt->TabIndex = 7; this->labelTimePrompt->Text = "Time"; // labelBottomLeft this->labelBottomLeft->BackColor = System::Drawing::Color::Black; this->labelBottomLeft->ForeColor = System::Drawing::Color::Black; this->labelBottomLeft->Location = System::Drawing::Point( 0, 176 ); this->labelBottomLeft->Name = "labelBottomLeft"; this->labelBottomLeft->Size = System::Drawing::Size( 16, 16 ); this->labelBottomLeft->TabIndex = 8; this->labelBottomLeft->Click += gcnew System::EventHandler( this, &FormMain::labelBottomLeft_Click ); // labelBottomRight this->labelBottomRight->BackColor = System::Drawing::Color::Black; this->labelBottomRight->ForeColor = System::Drawing::Color::Black; this->labelBottomRight->Location = System::Drawing::Point( 184, 176 ); this->labelBottomRight->Name = "labelBottomRight"; this->labelBottomRight->Size = System::Drawing::Size( 16, 16 ); this->labelBottomRight->TabIndex = 9; this->labelBottomRight->Click += gcnew System::EventHandler( this, &FormMain::labelBottomRight_Click ); // labelTopLeft this->labelTopLeft->BackColor = System::Drawing::Color::Black; this->labelTopLeft->ForeColor = System::Drawing::Color::Black; this->labelTopLeft->Location = System::Drawing::Point( 0, 8 ); this->labelTopLeft->Name = "labelTopLeft"; this->labelTopLeft->Size = System::Drawing::Size( 16, 16 ); this->labelTopLeft->TabIndex = 10; this->labelTopLeft->Click += gcnew System::EventHandler( this, &FormMain::labelTopLeft_Click ); // labelTopRight this->labelTopRight->BackColor = System::Drawing::Color::Black; this->labelTopRight->ForeColor = System::Drawing::Color::Black; this->labelTopRight->Location = System::Drawing::Point( 184, 8 ); this->labelTopRight->Name = "labelTopRight"; this->labelTopRight->Size = System::Drawing::Size( 16, 16 ); this->labelTopRight->TabIndex = 11; this->labelTopRight->Click += gcnew System::EventHandler( this, &FormMain::labelTopRight_Click ); // FormMain this->AutoScaleBaseSize = System::Drawing::Size( 9, 22 ); this->BackColor = System::Drawing::Color::Navy; this->ClientSize = System::Drawing::Size( 200, 200 ); this->Controls->Add( this->labelTopRight ); this->Controls->Add( this->labelTopLeft ); this->Controls->Add( this->labelBottomRight ); this->Controls->Add( this->labelBottomLeft ); this->Controls->Add( this->labelTimePrompt ); this->Controls->Add( this->labelLapPrompt ); this->Controls->Add( this->labelLap ); this->Controls->Add( this->buttonLapReset ); this->Controls->Add( this->buttonStartStop ); this->Controls->Add( this->labelTime ); this->Controls->Add( this->labelExit ); this->Font = gcnew System::Drawing::Font( "Microsoft Sans Serif",14.25F,System::Drawing::FontStyle::Regular,System::Drawing::GraphicsUnit::Point ); this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::None; this->Name = "FormMain"; this->Text = "StopWatch Sample"; this->TopMost = true; this->Load += gcnew System::EventHandler( this, &FormMain::FormMain_Load ); this->ResumeLayout( false ); } }; [STAThread] int main() { Application::Run( gcnew FormMain ); }
import System.*; import System.Diagnostics.*; import System.Windows.Forms.*; import System.Drawing.*; import System.Drawing.Drawing2D.*; public class FormMain extends System.Windows.Forms.Form { private Stopwatch stopWatch; private Boolean captureLap; public FormMain() { stopWatch = new Stopwatch(); captureLap = new Boolean(false); InitializeComponent(); } //FormMain protected void Dispose(boolean disposing) { super.Dispose(disposing); } //Dispose /** @attribute STAThread() */ public static void main(String[] args) { Application.Run(new FormMain()); } //main // Define event handlers for various form events. private void buttonStartStop_Click(Object sender, System.EventArgs e) { // When the timer is stopped, this button event starts // the timer. When the timer is running, this button // event stops the timer. if (stopWatch.get_IsRunning()) { // Stop the timer; show the start and reset buttons. stopWatch.Stop(); buttonStartStop.set_Text("Start"); buttonLapReset.set_Text("Reset"); } else { // Start the timer; show the stop and lap buttons. stopWatch.Start(); buttonStartStop.set_Text("Stop"); buttonLapReset.set_Text("Lap"); labelLap.set_Visible(false); labelLapPrompt.set_Visible(false); } } //buttonStartStop_Click private void buttonLapReset_Click(Object sender, System.EventArgs e) { // When the timer is stopped, this button event resets // the timer. When the timer is running, this button // event captures a lap time. if (buttonLapReset.get_Text().Equals("Lap")) { if (stopWatch.get_IsRunning()) { // Set the object state so that the next // timer tick will display the lap time value. captureLap = new Boolean(true); labelLap.set_Visible(true); labelLapPrompt.set_Visible(true); } } else { // Reset the stopwatch and the displayed timer value. labelLap.set_Visible(false); labelLapPrompt.set_Visible(false); labelTime.set_Text("00:00:00.00"); buttonLapReset.set_Text("Lap"); stopWatch.Reset(); } } //buttonLapReset_Click private void timerMain_Tick(Object sender, System.EventArgs e) { // When the timer is running, update the displayed timer // value for each tick event. if (stopWatch.get_IsRunning()) { // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.get_Elapsed(); // Format and display the TimeSpan value. labelTime.set_Text(((System.Int32)ts.get_Hours()).ToString("00") + ":" + ((System.Int32)ts.get_Minutes()).ToString("00") + ":" + ((System.Int32)ts.get_Seconds()).ToString("00") + "." + ((System.Int32)(ts.get_Milliseconds() / 10)). ToString("00")); // If the user has just clicked the "Lap" button , // then capture the current time for the lap time. if (System.Convert.ToBoolean(captureLap)) { labelLap.set_Text(labelTime.get_Text()); captureLap = new Boolean(false); } } } //timerMain_Tick private void labelExit_Click(Object sender, System.EventArgs e) { // Close the form when the user clicks the close button. this.Close(); } //labelExit_Click private void labelTopLeft_Click(Object sender, System.EventArgs e) { this.set_Location(new Point(0, 0)); } //labelTopLeft_Click private void labelBottomLeft_Click(Object sender, System.EventArgs e) { this.set_Location(new Point(0, Screen.get_PrimaryScreen(). get_WorkingArea().get_Height() - this.get_Height())); } //labelBottomLeft_Click private void labelTopRight_Click(Object sender, System.EventArgs e) { this.set_Location(new Point(Screen.get_PrimaryScreen(). get_WorkingArea().get_Width() - this.get_Width(), 0)); } //labelTopRight_Click private void labelBottomRight_Click(Object sender, System.EventArgs e) { this.set_Location(new Point(Screen.get_PrimaryScreen(). get_WorkingArea().get_Width() - this.get_Width(), Screen.get_PrimaryScreen().get_WorkingArea().get_Height() - this.get_Height())); } //labelBottomRight_Click private void FormMain_Click(Object sender, System.EventArgs e) { this.set_Location(new Point((Screen.get_PrimaryScreen(). get_WorkingArea().get_Width() - this.get_Width()) / 2, (Screen.get_PrimaryScreen().get_WorkingArea().get_Height() - this.get_Height()) / 2)); } //FormMain_Click private void FormMain_Load(Object sender, System.EventArgs e) { // Shape the viewer form with rounded edges. DrawForm(); this.set_Location(new Point((Screen.get_PrimaryScreen(). get_WorkingArea().get_Width() - this.get_Width()) / 2, (Screen.get_PrimaryScreen().get_WorkingArea().get_Height() - this.get_Height()) / 2)); } //FormMain_Load private void DrawForm() { // Shape the viewer form with rounded edges. GraphicsPath graphicsPath = new GraphicsPath(); graphicsPath.AddArc(0, 0, 100, 100, 180, 90); graphicsPath.AddArc(100, 0, 100, 100, 270, 90); graphicsPath.AddArc(100, 100, 100, 100, 0, 90); graphicsPath.AddArc(0, 100, 100, 100, 90, 90); this.set_Region(new Region(graphicsPath)); } //DrawForm // Define various form elements. private System.ComponentModel.Container components = null; private System.Windows.Forms.Label labelExit; private System.Windows.Forms.Label labelTime; private System.Windows.Forms.Timer timerMain; private System.Windows.Forms.Button buttonLapReset; private System.Windows.Forms.Button buttonStartStop; private System.Windows.Forms.Label labelLapPrompt; private System.Windows.Forms.Label labelTimePrompt; private System.Windows.Forms.Label labelLap; private System.Windows.Forms.Label labelBottomLeft; private System.Windows.Forms.Label labelBottomRight; private System.Windows.Forms.Label labelTopLeft; private System.Windows.Forms.Label labelTopRight; private void InitializeComponent() { this.SuspendLayout(); this.components = new System.ComponentModel.Container(); this.labelExit = new System.Windows.Forms.Label(); this.labelTime = new System.Windows.Forms.Label(); this.buttonLapReset = new System.Windows.Forms.Button(); this.timerMain = new System.Windows.Forms.Timer(this.components); this.labelLap = new System.Windows.Forms.Label(); this.buttonStartStop = new System.Windows.Forms.Button(); this.labelLapPrompt = new System.Windows.Forms.Label(); this.labelTimePrompt = new System.Windows.Forms.Label(); this.labelBottomLeft = new System.Windows.Forms.Label(); this.labelBottomRight = new System.Windows.Forms.Label(); this.labelTopLeft = new System.Windows.Forms.Label(); this.labelTopRight = new System.Windows.Forms.Label(); // labelExit this.labelExit.set_BorderStyle( System.Windows.Forms.BorderStyle.Fixed3D); this.labelExit.set_ForeColor(System.Drawing.Color.get_Aqua()); this.labelExit.set_Location(new System.Drawing.Point(160, 16)); this.labelExit.set_Name("labelExit"); this.labelExit.set_Size(new System.Drawing.Size(20, 20)); this.labelExit.set_TabIndex(0); this.labelExit.set_Text("x"); this.labelExit.set_TextAlign( System.Drawing.ContentAlignment.BottomCenter); this.labelExit.add_Click(new System.EventHandler(this.labelExit_Click)); // labelTime this.labelTime.set_Font(new System.Drawing.Font("Comic Sans MS", 18, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point)); this.labelTime.set_ForeColor(System.Drawing.Color.get_Yellow()); this.labelTime.set_Location(new System.Drawing.Point(-3, 56)); this.labelTime.set_Name("labelTime"); this.labelTime.set_Size(new System.Drawing.Size(208, 32)); this.labelTime.set_TabIndex(1); this.labelTime.set_Text("00:00:00.00"); // buttonLapReset this.buttonLapReset.set_Font(new System.Drawing.Font("Comic Sans MS", 14.25f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point)); this.buttonLapReset.set_ForeColor(System.Drawing.Color.get_Yellow()); this.buttonLapReset.set_Location(new System.Drawing.Point(104, 160)); this.buttonLapReset.set_Name("buttonLapReset"); this.buttonLapReset.set_Size(new System.Drawing.Size(72, 32)); this.buttonLapReset.set_TabIndex(4); this.buttonLapReset.set_Text("Lap"); this.buttonLapReset.add_Click(new System.EventHandler( this.buttonLapReset_Click)); // timerMain this.timerMain.set_Enabled(true); this.timerMain.set_Interval(50); this.timerMain.add_Tick(new System.EventHandler(this.timerMain_Tick)); // labelLap this.labelLap.set_Font(new System.Drawing.Font("Comic Sans MS", (float)14.25, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)); this.labelLap.set_ForeColor(System.Drawing.Color.get_Yellow()); this.labelLap.set_Location(new System.Drawing.Point(0, 120)); this.labelLap.set_Name("labelLap"); this.labelLap.set_Size(new System.Drawing.Size(200, 32)); this.labelLap.set_TabIndex(5); this.labelLap.set_Visible(false); // buttonStartStop this.buttonStartStop.set_FlatStyle(System.Windows.Forms.FlatStyle.Flat); this.buttonStartStop.set_Font(new System.Drawing.Font("Comic Sans MS", (float)14.25, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point)); this.buttonStartStop.set_ForeColor(System.Drawing.Color.get_Yellow()); this.buttonStartStop.set_Location(new System.Drawing.Point(24, 160)); this.buttonStartStop.set_Name("buttonStartStop"); this.buttonStartStop.set_Size(new System.Drawing.Size(72, 32)); this.buttonStartStop.set_TabIndex(2); this.buttonStartStop.set_Text("Start"); this.buttonStartStop.add_Click(new System.EventHandler( this.buttonStartStop_Click)); // labelLapPrompt this.labelLapPrompt.set_Font(new System.Drawing.Font("Comic Sans MS", (float)14.25, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)); this.labelLapPrompt.set_ForeColor(System.Drawing.Color.get_Yellow()); this.labelLapPrompt.set_Location(new System.Drawing.Point(8, 96)); this.labelLapPrompt.set_Name("labelLapPrompt"); this.labelLapPrompt.set_Size(new System.Drawing.Size(56, 24)); this.labelLapPrompt.set_TabIndex(6); this.labelLapPrompt.set_Text("Lap Time"); this.labelLapPrompt.set_Visible(false); // labelTimePrompt this.labelTimePrompt.set_Font(new System.Drawing.Font("Comic Sans MS", (float)15.75, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)); this.labelTimePrompt.set_ForeColor(System.Drawing.Color.get_Yellow()); this.labelTimePrompt.set_Location(new System.Drawing.Point(0, 24)); this.labelTimePrompt.set_Name("labelTimePrompt"); this.labelTimePrompt.set_Size(new System.Drawing.Size(88, 24)); this.labelTimePrompt.set_TabIndex(7); this.labelTimePrompt.set_Text("Time"); // labelBottomLeft this.labelBottomLeft.set_BackColor(System.Drawing.Color.get_Black()); this.labelBottomLeft.set_ForeColor(System.Drawing.Color.get_Black()); this.labelBottomLeft.set_Location(new System.Drawing.Point(0, 176)); this.labelBottomLeft.set_Name("labelBottomLeft"); this.labelBottomLeft.set_Size(new System.Drawing.Size(16, 16)); this.labelBottomLeft.set_TabIndex(8); this.labelBottomLeft.add_Click(new System.EventHandler( this.labelBottomLeft_Click)); // labelBottomRight this.labelBottomRight.set_BackColor(System.Drawing.Color.get_Black()); this.labelBottomRight.set_ForeColor(System.Drawing.Color.get_Black()); this.labelBottomRight.set_Location(new System.Drawing.Point(184, 176)); this.labelBottomRight.set_Name("labelBottomRight"); this.labelBottomRight.set_Size(new System.Drawing.Size(16, 16)); this.labelBottomRight.set_TabIndex(9); this.labelBottomRight.add_Click(new System.EventHandler( this.labelBottomRight_Click)); // labelTopLeft this.labelTopLeft.set_BackColor(System.Drawing.Color.get_Black()); this.labelTopLeft.set_ForeColor(System.Drawing.Color.get_Black()); this.labelTopLeft.set_Location(new System.Drawing.Point(0, 8)); this.labelTopLeft.set_Name("labelTopLeft"); this.labelTopLeft.set_Size(new System.Drawing.Size(16, 16)); this.labelTopLeft.set_TabIndex(10); this.labelTopLeft.add_Click(new System.EventHandler( this.labelTopLeft_Click)); // labelTopRight this.labelTopRight.set_BackColor(System.Drawing.Color.get_Black()); this.labelTopRight.set_ForeColor(System.Drawing.Color.get_Black()); this.labelTopRight.set_Location(new System.Drawing.Point(184, 8)); this.labelTopRight.set_Name("labelTopRight"); this.labelTopRight.set_Size(new System.Drawing.Size(16, 16)); this.labelTopRight.set_TabIndex(11); this.labelTopRight.add_Click(new System.EventHandler( this.labelTopRight_Click)); // FormMain this.set_AutoScaleBaseSize(new System.Drawing.Size(9, 22)); this.set_BackColor(System.Drawing.Color.get_Navy()); this.set_ClientSize(new System.Drawing.Size(200, 200)); this.get_Controls().Add(this.labelTopRight); this.get_Controls().Add(this.labelTopLeft); this.get_Controls().Add(this.labelBottomRight); this.get_Controls().Add(this.labelBottomLeft); this.get_Controls().Add(this.labelTimePrompt); this.get_Controls().Add(this.labelLapPrompt); this.get_Controls().Add(this.labelLap); this.get_Controls().Add(this.buttonLapReset); this.get_Controls().Add(this.buttonStartStop); this.get_Controls().Add(this.labelTime); this.get_Controls().Add(this.labelExit); this.set_Font(new System.Drawing.Font("Microsoft Sans Serif", (float)14.25, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)); this.set_FormBorderStyle(System.Windows.Forms.FormBorderStyle.None); this.set_Name("FormMain"); this.set_Text("StopWatch Sample"); this.set_TopMost(true); this.add_Load(new System.EventHandler(this.FormMain_Load)); this.ResumeLayout(false); } //InitializeComponent } //FormMain
System.Diagnostics.Stopwatch
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Stopwatch コンストラクタ
アセンブリ: System (system.dll 内)
構文
解説
返された Stopwatch インスタンスは停止し、インスタンスの経過時間のプロパティはゼロになります。
新しい Stopwatch インスタンスを使用して経過時間の計測を開始するには、Start メソッドを使用します。新しい Stopwatch インスタンスを初期化してすぐに開始するには、StartNew メソッドを使用します。
単純なクラス コンストラクタ内で Stopwatch インスタンスを初期化する例を次に示します。このコード例は、Stopwatch クラスのトピックで取り上げているコード例の一部分です。
Dim stopWatch As StopWatch Dim captureLap As Boolean Public Sub New() MyBase.New() stopwatch = New StopWatch() captureLap = False InitializeComponent() End Sub
private Stopwatch stopWatch; private Boolean captureLap; public FormMain() { stopWatch = new Stopwatch(); captureLap = false; InitializeComponent(); }
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Stopwatch フィールド
パブリック フィールド
名前 | 説明 | |
---|---|---|
Frequency | 1 秒あたりのタイマ刻みの数として、タイマの頻度を取得します。このフィールドは読み取り専用です。 | |
IsHighResolution | タイマが高解像力のパフォーマンス カウンタに基づいているかどうかを示します。このフィールドは読み取り専用です。 |
Stopwatch プロパティ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
Elapsed | 現在のインスタンスで計測された経過時間の合計を取得します。 | |
ElapsedMilliseconds | 現在のインスタンスで計測された経過時間の合計を取得します (ミリ秒単位)。 | |
ElapsedTicks | 現在のインスタンスで計測された経過時間の合計を取得します (タイマ刻み)。 | |
IsRunning | Stopwatch タイマが実行中かどうかを示す値を取得します。 |
Stopwatch メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetTimestamp | タイマ機構の現在のタイマ刻み数を取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
Reset | タイマ間隔の計測を停止して、経過時間をゼロにリセットします。 | |
Start | 間隔の経過時間の計測を開始または再開します。 | |
StartNew | 新しい Stopwatch インスタンスを初期化して、経過時間のプロパティをゼロに設定し、経過時間の計測を開始します。 | |
Stop | 間隔の経過時間の計測を停止します。 | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
Stopwatch メンバ
経過時間を正確に計測するために使用できるメソッドとプロパティのセットを提供します。
Stopwatch データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック フィールド
名前 | 説明 | |
---|---|---|
Frequency | 1 秒あたりのタイマ刻みの数として、タイマの頻度を取得します。このフィールドは読み取り専用です。 | |
IsHighResolution | タイマが高解像力のパフォーマンス カウンタに基づいているかどうかを示します。このフィールドは読み取り専用です。 |
名前 | 説明 | |
---|---|---|
Elapsed | 現在のインスタンスで計測された経過時間の合計を取得します。 | |
ElapsedMilliseconds | 現在のインスタンスで計測された経過時間の合計を取得します (ミリ秒単位)。 | |
ElapsedTicks | 現在のインスタンスで計測された経過時間の合計を取得します (タイマ刻み)。 | |
IsRunning | Stopwatch タイマが実行中かどうかを示す値を取得します。 |
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetTimestamp | タイマ機構の現在のタイマ刻み数を取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
Reset | タイマ間隔の計測を停止して、経過時間をゼロにリセットします。 | |
Start | 間隔の経過時間の計測を開始または再開します。 | |
StartNew | 新しい Stopwatch インスタンスを初期化して、経過時間のプロパティをゼロに設定し、経過時間の計測を開始します。 | |
Stop | 間隔の経過時間の計測を停止します。 | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
ストップウオッチ
ストップウオッチ(英: stopwatch)は、特定の事象の経過時間を計測することを目的とした時計である。トラック競技(主に陸上競技や競泳など)に代表される、タイムを競う運動競技の結果の記録(計時)や、工場などで作業者の作業分析に用いられる。別名は秒時計(びょうどけい)または精密時計(クロノグラフ、chronograf)。
解説
ストップウオッチの原型は、1776年にスイスで作られた[1]。
古典的なものは一般的な時計と同様に文字盤と針を備え、懐中時計と同じような形状をもつ。針は長針が秒針、短針が分針で文字盤には時刻でなく経過時間が表示されている。計測単位には1/5秒と1/10秒のタイプがあり、1/10秒のタイプは長針が30秒で一周する。竜頭を押すことにより時計の針をスタート、ストップさせることで経過時間を記録し、押すごとにスタート、ストップ、リセットとなる。積算式のものはリセットボタンが独立しており、一時停止の状態から再度計測を続けることができる。長針を2つもち、ラップタイムを計測できるものも存在する。
電子技術の進歩により、デジタル時計の出現後は、文字盤も数字表示が使われる例が多い。
スポーツ競技の計測
現代スポーツの競技大会などでは、人間の目視による状況把握による操作では誤差が生じる問題から、電気計時(人の手を介さない方法)が採用されている。例えば、以下の方法を採用している。
- 計測対象(競技者、乗り物)に発信器(チップ)を埋め込み、ゲートを通過した時刻、経過時間を記録する。
- スタートをピストルなどの合図に連動させる。
- 競技者がゴールした事を光学的、物理的に感知し時間を記録する。
脚注
「stop watch」の例文・使い方・用例・文例
- 堅苦しい語[表現, 文体] 《たとえば cease (=stop), commence (=begin), purchase (=buy), vessel (=ship) など》.
- 『filling(お腹が一杯になる)』のくだけた英国英語表現は『stopping』である
- 抗炎症剤として使われる合成副腎皮質ステロイド(商品名Aristocort、Aristopak、Kenalog)
- 直接目的語 《たとえば She gave him a watch. における a watch》.
- 間接目的語 《たとえば She gave him a watch. における him》.
- stop-watchのページへのリンク