Load時にモジュールからいくつかのコードを実行するwinFormがあります。コードの実行中にフォームを一番上に置いておきたいのですが、フォームには進行状況バーが含まれているため、ユーザーが進行状況を確認することが不可欠です。
TopMost=True
フォームをとに設定しましたShowDialog
私が抱えている問題は、手順が作業を実行している間、フォームが表示されないことです。昔の VBARepaint
では、この問題を修正していましたが、VB.net にはそのようなオプションがありません。私はいくつかの調査を行い、さまざまな場所で を使用していましInvalidate
たが、そこにも何もありませんでした。
フォームが消えるのを防ぎ、コードの実行中にフォームが一番上に残るようにするにはどうすればよいですか。
Private Sub frmDataImportSplash_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim intProgressWidth As Integer = 214
Dim intProgress As Integer = 0
'Before procedures perform the following checks:
'Check to see if Cancel has been clicked
'Set the lblProgressBar width to 0
'Change the lblPctCompleted caption to 0% Completed
'Change the lblStatus Caption to Importing Files
'Display the lblStats
checkCancel(Cancel:=False)
Me.prgStatus.Width = 0
Me.lblPctCompleted.Text = "0% Completed"
Me.lblStatus.Text = "Preparing Imports"
Me.lblStatus.Visible = True
checkCancel(Cancel:=False)
Me.Invalidate()
Me.prgStatus.Width = 20
intProgress = (Me.prgStatus.Width / intProgressWidth) * 100
Me.lblPctCompleted.Text = intProgress & "% Completed"
Me.Invalidate()
'Here is where my form dissapears
formatModule.importSheets()
checkCancel(Cancel:=False)
Me.Invalidate()
Me.prgStatus.Width = 60
intProgress = (Me.prgStatus.Width / intProgressWidth) * 100
Me.lblPctCompleted.Text = intProgress & "% Completed"
Me.Invalidate()
formatModule.prepareExports()
End Sub
End Class