VB.net(2005)でFormのLoadイベント処理について質問です
設定時刻として9:00とします。
formを起動した時刻が9時前ならまで何もせず。
9時以降になれば処理を開始する。
といったプログラムを作成しようと思います。
サンプル)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim settingtime As DateTime
'現在時刻を設定
Dim nowtime As DateTime = System.DateTime.Now.ToShortTimeString
'設定時間を9時
settingtime DateTime = DateTime.Parse("9:00").ToShortTimeString
'現在時刻が9時より後のとき
If nowtime < setting Then
処理A
Else
'現在時刻が9時より前のとき
9時まで処理Aをしない(9時になれば処理Aを開始)
End If
End Sub
上記のようにコーティングしましたが、
呼び出した時が9時以降なら処理Aをして以前ならElseの処理を行い抜けてしまいます。
9時になれば処理をAをしたいのです。
formを呼び出しにTimerのTickイベントで9時になれば処理Aを開始?
なにかいい案があればよろしくお願いします。
No.1ベストアンサー
- 回答日時:
お世話になります。
Form1 に Timer コントロールを貼り付けます。
以下のコードでどうでしょうか。
Public Class Form1
''' <summary>
''' 処理 A を実行する時間
''' </summary>
''' <remarks></remarks>
Private m_startDatetime As DateTime = DateTime.MinValue
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 処理 A を実行する時間を設定(Application 実行した日の 9 時)
Me.m_startDatetime = New DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 9, 0, 0)
Me.Timer1.Enabled = True
Me.Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If DateTime.Now.ToString("yyyyMMddHHmmss") >= Me.m_startDatetime.ToString("yyyyMMddHHmmss") Then
' 指定した時刻以降の時刻になったら
' Timer を止める
Me.Timer1.Stop()
Me.Timer1.Enabled = False
' 処理 A 実行
Me.A()
End If
End Sub
' 処理 A
Private Sub A()
MessageBox.Show("A")
End Sub
End Class
No.2
- 回答日時:
DoかWhileを使って9時を過ぎるまで無限ループで待っていて、無限ループを抜け出したら処理Aを行なうようにすれば良いのでは。
無限ループの中ではSleepで待ち時間とDoEventsを実行して、他のプログラムに実行が渡せるように工夫をしておいた方が良いですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
バイナリ送信で出るエラーコー...
-
private subモジュールを他のモ...
-
IF文に時間(何時から何時ま...
-
【VBA】エラー処理で別プロシー...
-
特定のファイルを他のプロセス...
-
VBAでBook読み込み時の非表示方...
-
特定の名前のオートシェイプの...
-
Linux(CentOS)にでcronとシェル...
-
タイマーの使い方
-
フォーカスがどこか行ってしまう
-
シェルスクリプトでファイル内...
-
バッチファイルでのエラー処理...
-
どう増強すべきか
-
VB6にてネットワーク上にある共...
-
マクロで、次のコードへ行く前...
-
プログラミングの説明のしかた
-
VBA エラーハンドラーについて
-
Word VBA。各マクロの間に待ち...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
Excel VBA セルの名前があるか...
-
特定の名前のオートシェイプの...
-
どうやってもFor文を抜けてしま...
-
特定のファイルを他のプロセス...
-
ExcelのVBAで、選択したファイ...
-
VB6にてネットワーク上にある共...
-
VBA 複数の行を高速で削除する...
-
Word VBA。各マクロの間に待ち...
-
フォルダのアクセス権確認について
-
エクセル VBAで複数セル選択時...
-
VBA For Each 〜 複数条件について
-
【C#】Page_Loadさせない方法に...
-
StatusStripの表示が更新されな...
おすすめ情報