Windowsフォームアプリでストップウォッチの機能を使いたいのですが
( 1 ) 表示の機能として、デジタル数字が0.1秒単位で進んでいく様子をLabel等に表示させるには?
( 2 ) 内部の機能として、Button等でスタート、ストップ、リセットを行うには?
( 2 )については、StopwatchクラスのStopとStartメソッドを用いるというのまでは突き止めましたがここまでは正しいでしょうか。Buttonクリックイベントハンドラとインスタンス化とメソッド使用方法自体は最低限わかります。
Visual C# 2012を使っています。
ほぼ初心者レベルなので最低限の用語しか理解できないですが、宜しくお願いします。
No.2ベストアンサー
- 回答日時:
>「タイマーなりスレッドなり」というのはどういう事でしょう?
まず、実験として
ボタンを1個配置して、そこに
Label1.Text = sw.ElapsedMilliseconds.toString() + " ミリ秒";
を記述して実行
追加したボタンを押すたびに
値が変わる事を確認
逆に言えば、ボタンを押さなきゃ変わらない事を確認したって事なので、
定期的に実行されるイベントに
Label.Text = sw.ElapsedMilliseconds.toString() + " ミリ秒";
を記述すれば良い
で、定期的に実行されるイベントを持つのが
「タイマーなりスレッドなり」と言う事
>タイマーというとTimerコントローラの事ですか?
Timer コントロールの事
>また
>LabelのTextに時間を代入する文はどの位置で何のイベントハンドラーで記入すればいいでしょうか?
がまさに ↓ これ
Label1.Text = sw.ElapsedMilliseconds.toString() + " ミリ秒";
Label1.Text
↑ラベル1のテキストプロパティ に
= sw.ElapsedMilliseconds
↑ストップウォッチの、経過時間(ミリ秒)を
.toString() + " ミリ秒";
↑文字列に変換して、後ろに" ミリ秒"とつけてセットする
この後ろにリフレッシュ関数を付けるほうが良いかも
Label1.Text = sw.ElapsedMilliseconds.toString() + " ミリ秒";
Label1.Refresh();//← Label1 再描画指示
返答が遅れて申し訳ありません。
全体的にこんがらがって分からない状態なので、今回は改めさせていただきます。
ご回答は大事な資料として今後参考にさせていただきます。
どうもありがとうございました。
No.1
- 回答日時:
>( 2 )については、StopwatchクラスのStopとStartメソッドを用いるというのまでは突き止めましたが
>ここまでは正しいでしょうか
大丈夫でしょう
以下は大まかな流れ
宣言
private System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
スタートボタン押下の処理
if (sw.IsRunning) { sw.Stop(); }
sw.Reset();
sw.Start();
ストップボタン押下の処理
if (sw.IsRunning) { sw.Stop(); }
タイマーなりスレッドなり
Label.Text = sw.ElapsedMilliseconds.toString() + " ミリ秒";
この回答への補足
「タイマーなりスレッドなり」というのはどういう事でしょう?
タイマーというとTimerコントローラの事ですか?
また
LabelのTextに時間を代入する文はどの位置で何のイベントハンドラーで記入すればいいでしょうか?
以下のコード(一部割愛)を実行しようとしたところビルドエラーが出ました。
public Form1()
{
InitializeComponent();
}
private Stopwatch sw = new Stopwatch();
label1.Text = sw.ElapsedMilliseconds.ToString();
private void button1_Click(object sender, EventArgs e)
{
if (sw.IsRunning) { sw.Stop(); }
sw.Reset();
sw.Start();
}
private void button2_Click(object sender, EventArgs e)
{
if (sw.IsRunning) { sw.Stop(); }
}
ここの
label1.Text = sw.ElapsedMilliseconds.ToString(); の行で
'('と'='が無効なトークンと出てしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- テレビ プレステ5が映らなくりました 1 2023/07/13 11:09
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- VPN フリー wi-fi は安全ですか 自宅での wi-fi VPNを使用したら良い? 2 2022/05/31 04:12
- ノートパソコン あなたのパソコン(Windows限定)は何年使っていますか? 4 2023/05/27 08:04
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c# 文字列の最後から1文字削除...
-
DataGridViewのチェックボック...
-
Webブラウザの閉じるボタン無効...
-
Page_Load時にボタンクリックイ...
-
Eclipseでクリーンが出来ない
-
Excel:「フォーム」のボタンで...
-
メール添付されたPDFファイルが...
-
エクセルにカウンターを設置したい
-
Fancyboxのiframe内に閉じるボタン
-
JDialogの×(閉じる)ボタン
-
CheckBoxをボタン形式にして押...
-
初期状態に戻す方法
-
VC++ MFC CListCtrlで、ボタン...
-
ASP.NETのGridViewでNULLの場合...
-
ACCESS リストボックスに検索結...
-
最大化ボタンと最小化ボタンを...
-
VBAで一時中断したプログラムの...
-
ブラウザの×ボタン判定
-
ブラウザの×ボタン(閉じるボタ...
-
ロストフォーカスイベントとそ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewのチェックボック...
-
グリッドビューでのチェックボ...
-
ブラウザの×ボタン(閉じるボタ...
-
【JavaScript?HTML?】Webペー...
-
Eclipseでクリーンが出来ない
-
c# 文字列の最後から1文字削除...
-
VBAで一時中断したプログラムの...
-
【C#】 : WindowsProgramming ...
-
EXCEL2010でセルが編集中かを判...
-
Ctrlキーを押しながらのダブル...
-
SPREADでカーソルの位置を1行目...
-
メール添付されたPDFファイルが...
-
ロストフォーカスイベントとそ...
-
asp.net メッセージボックス表...
-
CheckBoxをボタン形式にして押...
-
JSPでメッセージボックスを表示...
-
今更、VBAでRPA、キーボード操...
-
VC++ MFC CListCtrlで、ボタン...
-
Fancyboxのiframe内に閉じるボタン
-
VBのこのコードの意味を教えて...
おすすめ情報