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

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

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

Formを最小化するとそこで実行が止まってしまう

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■87532 / inTopicNo.1)  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イベントを抜けた後
すぐに発生するはずのタイマーイベントが発生しない状態です。

上記のような場合にこれまで通り
タイマーイベントが発生するようになる方法はありますでしょうか?
引用返信 編集キー/
■87533 / inTopicNo.2)  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 ビルドのいずれでも同じ状況です。


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

このトピックをツリーで一括表示


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

このトピックに書きこむ