タイトル : Re^2: ShowDialog時の処理について 投稿日 : 2008/09/01(Mon) 17:03 投稿者 : 皐月
たくボンさん、さっそくのお返事ありがとうございます。 > ループ処理の中身がわからないので、解答しにくいですがこんな感じですか? 失礼しました。わかりにくいとは思いますが、以下にForm2の内容の一部を記します。 Form2_Loadから、ループ処理のあるCommunicateを呼び出す処理となっています。 現在、以下のソースではForm2は表示されず、communicateのループ処理を行うため強制終了するしか終了方法がありません。 Form2には決定ボタンがありますので、それをクリックされるとForm2がクローズされメインの処理に戻るよう作成してあります。 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, DispSetdata.Enter DispSetdata.Select() communicate() End Sub Private Sub communicate() Do If Devicechk(ReDevNo) = 1 And FirstData(ReDevNo) = -1 Then StartdataRead(ReDevNo) End If If Devicechk(ReDevNo) <> 0 Then ReadPara() End If If CommState <> DOREAD Then ReDevNo = ReDevNo + 1 If ReDevNo > 100 Then ReDevNo = 0 ReadNo = ReadNo + 1 If ReadNo > 10 Then ReadNo = 0 SelectDispItem() End If End If End If System.Windows.Forms.Application.DoEvents() Loop End Sub > ループ処理がTimerで実装できるか検討してみてください。 Timerを使用したときは問題なく動作したのですが、Timerで設定できる最小のIntervalが1となっており、アナライザで測定すると通信データの読み取りで、1データごとに約1.4秒ほど時間の隙間が生じるため、実装を断念しております。 |