
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPで使用不可
-
SPREADでカーソルの位置を1行目...
-
今更、VBAでRPA、キーボード操...
-
ブラウザの×ボタン(閉じるボタ...
-
MFCでグリッド
-
セッションIDを取得したい
-
asp.NET初心者です。「 ’Contex...
-
getParameterで値が取得できず...
-
前の画面の情報を保持するには?
-
HTMLだけでボタン作成
-
INPUTのボタン周囲のスペース
-
サーバー上の全セッション変数...
-
コネクション・セッション・ト...
-
ASP.NET(VB)でのデータグリッド...
-
WScript??
-
HSPでIEを操作したいのですが
-
複数のヤフーIDの画面ウィンド...
-
アドレスバーのないウィンドウ...
-
ASP.NET
-
ASP.NET ブラウザでボタンが表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで一時中断したプログラムの...
-
Eclipseでクリーンが出来ない
-
c# 文字列の最後から1文字削除...
-
メール添付されたPDFファイルが...
-
DataGridViewのチェックボック...
-
SPREADでカーソルの位置を1行目...
-
GridViewの項目編集(初歩)
-
グリッドビューでのチェックボ...
-
JSPでメッセージボックスを表示...
-
EXCEL2010でセルが編集中かを判...
-
Fancyboxのiframe内に閉じるボタン
-
Seasar2環境での画像リンクの作成
-
Javascriptの電卓を作る課題に...
-
今更、VBAでRPA、キーボード操...
-
Ctrlキーを押しながらのダブル...
-
Webブラウザの閉じるボタン無効...
-
ブラウザの×ボタン(閉じるボタ...
-
VC++ MFC CListCtrlで、ボタン...
-
[Android] Notificationでない...
-
メッセージボックスのボタンの...
おすすめ情報