• ベストアンサー

タイマーで動かすselect caseのタイミング

今、プログラムを勉強しているものです。 ボタンをクリックするとTimer1が指定したインターバルで動き始め、Timer_Tickにあるselect caseがループし始めるということをしています。 しかし、どうしてもタイマーを動かしてからselect caseに行くまでにインターバルが一回入ってしまうのです。これをどうにかタイマーが動いたときにすぐselect caseを動かすようにはならないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Timer_Tickの処理をサブルーチン化して、Timer_Tickはそれを呼び出すだけにしとく。 で、Timer.startする前に、サブルーチンを1回呼び出しとくとか。

その他の回答 (1)

回答No.2

>しかし、どうしてもタイマーを動かしてからselect caseに行くまでに >インターバルが一回入ってしまうのです。 あの?。もう少し聞きたいんだ。 タイマーを動かしてからselect caseに行くまでにの意味なんだけど、 最初タイマーインタバルをセットして次にタイマーイネーブルをTRUEにして 起動する。そうするとタイマーが起動し、指定ミリ秒後にTimer_Tickが呼び出される。 Timer_Tickの中のステートメントが順番に実行され select case の所のステートメントに ステップが進んでいくまでにインターバルが一回入るってことは?。 Timer_Tickの中の先頭のステートメントからselect case の所のステートメントまでの 処理時間が長くって、もう一回インターバルが発生して、Timer_Tick が実行されるとの 意味でいいのですか?。 この考え方でいいの?。教えて。それによって回答が・・・・・。

kuroyume21
質問者

お礼

結果的にちゃんとできたのでご心配かけてすいませんでした。 質問を締め切るのを忘れてました。 わからなかった状況を説明しますと、 Private Sub Button1_Click・・・     Timer1.Enabled = True Timer1.Interval = 1000 Timer1.Start() end sub   Private Sub Timer1_Tick・・・     select case     ・     ・ end sub と書いてまして、 ボタンのend subからTimerのPrivateに行くまでにインターバル一回分が挟まって、select caseに行ってくれないなということで困ってしまって質問しました。 そしてTimer1_startの前の行にTimer1_Tickのサブルーチン化したものを入れまして、問題を解決することができました。 ほんとにご迷惑かけてすいませんでした。 ありがとうございました。

関連するQ&A