2016-08-04 3 views
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 
+2

画像をstackoverflowでアップロードします。 –

+1

それは何か他のことをしているように見えますし、コントロールにペイントする時間がありません – Plutonix

+0

あなたの '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)。 –

答えて

0

メインフォームには、それがCPU集約型のタスクを実行していた。ここで

は、私が使用しているコードです。なんらかの理由で、私はそれが本質的に連続していると思っていましたが、新しいフォームは問題を引き起こした古いフォームと同時に作業していました。

関連する問題