タイトル | : タイマー起動時の画面の再表示 |
記事No | : 4264 |
投稿日 | : 2006/09/15(Fri) 11:25 |
投稿者 | : エイジ |
WindouwsXp pro VB.net 2003 SQLServer 上記環境で開発しております。
メニュー(A.exe)、自動更新(B.exe)、データ検索(C.exe)がありましてそれぞれ 単独の実行ファイルです。 メニューを起動しますと、自動更新も起動するようになっております。 自動更新が起動時は、画面を非表示にして、タスクバーにも表示させていません。 自動更新には、タイマーイベント処理をし、起動から一定に時間が経過すると 処理を開始するようにしてあります。その際、「処理中です」という画面を表示 させたと思っています。しかし、タスクバーには表示されるのですが、画面上には 表示されません。(タスクバーのをクリックすると表示されます。)処理が終了すると 画面とタスクバーを非表示にしています。そしてまた一定期間が経過すると処理を 起動させています。 自動更新では、CSVファイルからの取り込みと、データ検索で登録した条件に対して 再検索をして、検索結果をデータに保存しています。 自動更新内でのソースは以下のように記述しています。 処理が始まりましたら画面が表示するにはどうしたらよろしいでしょうか。 よろしくお願いします。
Private Sub frm自動更新_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
MyBase.Visible = True MyBase.TopMost = True Application.DoEvents() '引数によって処理内容を変更。メニューから起動時は[012]を引数とする If mode.Trim <> "" Then If mode.Trim = "012" Then Else EventRun("0") End If End If MyBase.Visible = False Application.DoEvents()
Timer1.Interval = CCInt(更新の間隔) * 1000 Timer1.Enabled = True End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick MyBase.Visible = True MyBase.Show() Application.DoEvents() EventRun("1") Timer1.Interval = CCInt(更新の間隔) * 1000 Timer1.Enabled = True End Sub
Private Sub EventRun(ByVal CallMode As String) Timer1.Enabled = False Dim MoCnt As Integer = 0 Dim i As Integer Try Select Case CallMode Case "0" '検索処理のみ Case "1" 'データの更新と検索処理 End Select MyBase.Visible = False If CallMode = "0" Then End End If Catch ex As Exception End End Try End Sub
|