2011-08-08 9 views
0

データセットに関連付けられたDataGridビューコントロールがあります。したがって、データセットが新しいレコードで更新されると、グリッドに表示されます。問題は、ウィンドウを最小化するか、または更新されたグリッドを表示するためにそのウィンドウで再ペイントを強制する必要があることです。Vb.NETフォーム/データグリッドの更新に関する質問

このリフレッシュを呼び出す方法についてのご意見はありますか? Form.refreshとform.grid.refreshが機能しませんでした。

+0

グリッドで再度データセットを再バインドしないのはなぜですか? – Rahul

+1

GridViewをどのように読み込んでいるのか、どのように更新しているのか、いくつかのコードを見ていただければ幸いです。DataSetを更新した直後にGridViewを再ロードしてください... Form.RefreshはGidViewとは関係ありません。 –

+0

GrdExec.DataSource = gdsXXX.tbExecデータセットを更新すると、ウィンドウを最小化したり、リフレッシュ/再描画を強制しない限り、グリッドはリフレッシュに失敗します – schar

答えて

0

私のコメントに応じて....これはすぐにエディタに入力され、テストされませんでしたが、どのように行うべきかについてのアイデアを与える必要があります。

Public Class Form1 
    Dim ds as New DataSet 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      'Initial load of the DataSet 
      LoadGridView() 
    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     'Update the DataSet 

     'Then reload the GridView 
     ReloadGridView() 
    End Sub 

    Private Sub LoadGridView() 
      ds = 'Fetch the data from the DB and lod into DataSet. 
      'Bind DataSet to GridView. 
      DataGridView1.DataSource = ds.Tables(0) 
    End Sub 

    Private Sub ReloadGridView() 
      DataGridView1.DataSource = Nothing 
      LoadGridView() 
    End Sub 
End Class