0
デリゲートを介してDataGridViewを更新しようとしています。これは単純なアプリケーションの一部ですが、最初のクエリは生成に4〜5秒かかります。 DataGridViewを構築するためにFillSchemaを使用して、アプリケーションがすぐに起動してからデータを更新するようにします。これは代表者への私の最初の進出であり、すべての批評が歓迎されます。デリゲートを介してDataGridViewをロード
Private Sub LoadGrid(ByVal loadType As String)
StringBuild()
If loadType = "Schema" Then
da.FillSchema(ds, SchemaType.Source, "Requests")
Else
da.Fill(ds, "Requests")
End If
End Sub
Private Sub LoadGridAsync()
Dim del As New delLoadGrid(AddressOf LoadGrid)
Dim cb As New AsyncCallback(AddressOf LoadGridCallback)
Dim result As IAsyncResult
result = del.BeginInvoke("Full", cb, del)
End Sub
Private Sub LoadGridCallback(ByVal result As IAsyncResult)
Dim delS As delLoadGrid
Dim delR As New delRefreshGrid(AddressOf RefreshGrid)
delS = CType(result.AsyncState, delLoadGrid)
delS.EndInvoke(result)
Invoke(delR)
End Sub
Private Sub RefreshGrid()
dgvSign.Update()
End Sub
私はRefreshGridサブでdebug.printを実行できますが、それは間違いなく発生します。なぜそれが更新されないのですか?
DataGridはDataSourceテーブルにバインドされています。上記のLoadGridをデリゲートとして呼び出すのでない限り、更新はうまくいきます。私はコールバック関数で再描画する必要があると思ってUpdateを追加しました。 – Jesse
RefreshGridでdgvSignを再バインドすると機能しますか?たとえば:dgvSign.DataSource = Nothing、dgvSign.DataSource = [data] –
これは完全に機能しました!多くの人がジョシュアに感謝します。 – Jesse