DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33416 / inTopicNo.1)  Sleepの使い方
  
□投稿者/ VB 一般人(1回)-(2016/07/08(Fri) 08:28:07)
  • アイコン環境/言語:[VB.net] 
    分類:[.NET] 

    例えば、テキストボックスなどに「成功」などと表示しておいて、
    10秒たったら表示を「失敗」などに変更するPGを作るといた場合、どのようにすればいいでしょうか?
    まずは、簡単なPGで考えています。処理としては
    1:ボタンをクリックする
    2:テキストボックスなどに「OK」という文字を表示する
    3:10秒まつ
    4:10秒後、テキストボックスの文字が「NG」という文字に変わる

    Sleepとかつかうと画面が固まる?とかDoeventを使うとか、色々あってどういう風に書くのがスマートなのかわかりません。基礎的なことがわかっていなくてすいませんが、おちからをいただければとおもいます。
引用返信 削除キー/
■33417 / inTopicNo.2)  Re[1]: Sleepの使い方
□投稿者/ 魔界の仮面弁士 大御所(1038回)-(2016/07/08(Fri) 10:32:53)
  • アイコンNo33416に返信(VBさんの記事)
    > 1:ボタンをクリックする
    > 2:テキストボックスなどに「OK」という文字を表示する
    > 3:10秒まつ
    > 4:10秒後、テキストボックスの文字が「NG」という文字に変わる

    その 10 秒の間に、ボタンがもう一度押されたり、
    アプリが終了されたりしたらどうするのかなども
    考慮する必要はありますが:


    とりあえず VB2015 ならこんな感じ。

    Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     TextBox1.Text = "OK"
     Await Task.Delay(10000)
     TextBox1.Text = "NG"
    End Sub


    VB.NET 2002 だとこうかな。

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
     TextBox1.Text = "OK"
     Timer1.Interval = 10000
     Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
     Timer1.Enabled = False
     TextBox1.Text = "NG"
    End Sub
引用返信 削除キー/
■33421 / inTopicNo.3)  Re[2]: Sleepの使い方
□投稿者/ 魔界の仮面弁士 大御所(1040回)-(2016/07/08(Fri) 18:17:26)
  • アイコンNo33417に追記(魔界の仮面弁士の記事)
    > とりあえず VB2015 ならこんな感じ。
    > VB.NET 2002 だとこうかな。

    表題が「Sleepの使い方」なので、Sleep を使った別案です。
    VB2005 以降が対象。


    Private Sub Button1_Click( _
      ByVal sender As Object, _
      ByVal e As EventArgs _
     ) Handles Button1.Click

      TextBox1.Text = "OK"
      BackgroundWorker1.RunWorkerAsync()

    End Sub

    Private Sub BackgroundWorker1_DoWork( _
      ByVal sender As Object, _
      ByVal e As System.ComponentModel.DoWorkEventArgs _
     ) Handles BackgroundWorker1.DoWork

      System.Threading.Thread.Sleep(10000)

    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted( _
      ByVal sender As Object, _
      ByVal e As RunWorkerCompletedEventArgs _
     ) Handles BackgroundWorker1.RunWorkerCompleted

      TextBox1.Text = "NG"

    End Sub
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -