C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

Formを最小化するとそこで実行が止まってしまう /はっしー (18/06/01(Fri) 19:45) #87532
Re[1]: Formを最小化するとそこで実行が止まってしまう /魔界の仮面弁士 (18/06/01(Fri) 23:03) #87533


親記事 / ▼[ 87533 ]
■87532 / 親階層)  Formを最小化するとそこで実行が止まってしまう
□投稿者/ はっしー (1回)-(2018/06/01(Fri) 19:45:31)

分類:[VB.NET/VB2005 以降] 

OS: Windows 10
.NET Frameworkのバージョン:3.5

WindowsXPで起動直後にFormを最小化し、
タイマーイベントで処理を行う常駐プログラムがあったのですが、
それをWindows10へ持ってきたときに
タイマーイベントが発生しなくなってしまいました。
exeは全く同じものを使用しており、違いはOSだけです。

ShownイベントでFormの最小化をしているのですが、
ソースのステップ実行をしてみたところ、
Shownイベントを抜けた後
すぐに発生するはずのタイマーイベントが発生しない状態です。

上記のような場合にこれまで通り
タイマーイベントが発生するようになる方法はありますでしょうか?
[ □ Tree ] 返信 編集キー/

▲[ 87532 ] / 返信無し
■87533 / 1階層)  Re[1]: Formを最小化するとそこで実行が止まってしまう
□投稿者/ 魔界の仮面弁士 (1703回)-(2018/06/01(Fri) 23:03:42)
No87532 (はっしー さん) に返信
> OS: Windows 10
> .NET Frameworkのバージョン:3.5

こんな実験コードを書いてみました。
下記の Timer1 は、System.Windows.Forms.Timer クラスです。


Public Class Form1
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Interval = 100
    Timer1.Start()
  End Sub

  Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    WindowState = FormWindowState.Minimized
  End Sub

  Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    Static n As Integer = 0
    Text = Now.ToString("HH:mm:ss.fffffff")
    n += 1
    If n >= 20 Then
      Timer1.Stop()
      MsgBox("イベントが発生している", vbSystemModal)
    End If
  End Sub
End Class


.NET Framework 3.5 でコンパイルして、
Windows 10 Version 1803 (OS ビルド 17134.48) 上で
試してみましたが、最小化中も Tick イベントが発生していました。
x64 / x86 / AnyCPU ビルドのいずれでも同じ状況です。


そちらの環境では、上記のコードの場合も、やはりイベントが呼ばれないのでしょうか?
[ 親 87532 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -