0
私はいくつかの奇妙な問題を抱えているWindowsフォームアプリケーションを持っています。Load/Shownイベントの一部としてコントロールを描画する問題
フォームが表示されていると、テキストの代わりにすべてのコントロールがある白いボックスが表示されます。
ここには、問題のimagesがあります。
私はもともとLoadイベントですべてを持っていて、表示されたイベントに移動しました。問題は残っていましたので、実際の作業部分を別のメソッドに移動し、問題があった場合にチェックリストコントロールに新しいファイルを書き込む代理人を追加しました。
残念ながら、それはまだ起こり、私は混乱しています。
Private Sub form_FileCleanup_Shown(sender As Object, e As EventArgs) Handles Me.Shown
frmMain.Hide()
Me.BringToFront()
DoWork()
End Sub
Private Sub DoWork()
For Each _file As KeyValuePair(Of String, FileInfoList.fileInfoS) In fl.FileRemoveList
Dim fi As FileInfoList.fileInfoS = _file.Value
UpdateFileListl(fi.FullName)
'cbxFileList.Items.Add(fi.FullName, False)
Next
lblStatusMessage.Text = ""
End Sub
Private Delegate Sub FileListUpdateDelegate(fileName As String)
Private Sub UpdateFileListl(fileName As String)
Try
If Me.cbxFileList.InvokeRequired Then
cbxFileList.Invoke(New FileListUpdateDelegate(AddressOf UpdateFileListl), fileName)
Else
cbxFileList.Items.Add(fileName, False)
cbxFileList.Update()
End If
Catch ex As Exception
errorLogs.Add(ex)
End Try
End Sub
画像をstackoverflowでアップロードします。 –
それは何か他のことをしているように見えますし、コントロールにペイントする時間がありません – Plutonix
あなたの 'DoWork'はおそらく時間を浪費し、UIトレッドをビジーにします。 [Async/Await](https://msdn.microsoft.com/en-us/library/mt674902.aspx)を使用するか、[BackgroundWorker](https://msdn.microsoft.com/en-us/library/cc221403)を使用してください。 (v = vs95).aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-1)。 –