tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルタイマー起動時の画面の再表示
記事No4264
投稿日: 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

[ツリー表示へ]
タイトルRe: タイマー起動時の画面の再表示
記事No4269
投稿日: 2006/09/15(Fri) 23:48
投稿者花ちゃん
> させたと思っています。しかし、タスクバーには表示されるのですが、画面上には
> 表示されません。(タスクバーのをクリックすると表示されます。)処理が終了すると

投稿されたコードではよく解りませんが、これって、単にFormが最小化で表示されて
いる状態ではないのですか?
Formを表示したいところで下記の1行を追加してみてはどうでしょうか?
   Me.WindowState = FormWindowState.Normal  

[ツリー表示へ]
タイトルRe^2: タイマー起動時の画面の再表示
記事No4270
投稿日: 2006/09/19(Tue) 08:58
投稿者エイジ
> 投稿されたコードではよく解りませんが、これって、単にFormが最小化で表示されて
> いる状態ではないのですか?
> Formを表示したいところで下記の1行を追加してみてはどうでしょうか?
>    Me.WindowState = FormWindowState.Normal  

花ちゃんさん、いつもありがとうございます。
お返事、遅くなりまして申し訳ございません。
教えていただいた1行を表示したいところに追加しましたら、やりたいことが
実現できました。ありがとうございました。
よく考えますと、ご指摘のとおり、Formが最小化で表示されていただけだと思います。

これからも、よろしくお願いします。

[ツリー表示へ]