- ベストアンサー
DataGridViewの再表示方法
- VB2005、SQLServer2005環境で、FormAのDataGridViewを最新のデータで再描画する方法を教えてください。
- FormAのDataGridViewを再描画するためには、FormBでデータを登録し、FormBを閉じるタイミングでResetBindingsを使用する必要があります。
- DataGridViewの再描画方法についての具体的なコード例や手順をご教授いただけますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
DataGridView.Refresh ではなく、更新した DataTable / DataSet をわたした方がよいかもしれません。 [FormA] Dim f As New FormB f.ShowDialog() If f.DialogResult = DialogResult.OK Then Me.DataGridView.DataSource = ... End If [FormB] ---(FormBの[OK]ボタンイベント)--- Me.DialogResult = DialogResult.OK Me.Close()
その他の回答 (2)
DialogResult というキーワードが与えられているわけですから、Google に聞いてみるとかやり方はあると思うのですが。。。 http://dobon.net/vb/dotnet/form/okcancelbutton.html
補足
すみません。調べてはみたのですがうまくいきません。 FormBのFormClosedイベントに下記のように書いたのですが再表示されません。どう記述すればよろしいですか? Private Sub FormB_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed FormA.datagridview1.Refresh() End Sub
FormA から FormB をオープンする時に、たぶん ShowDialog を使っていますよね? その前提で回答します。 FormB を 閉じた時点で FormA 内の FormB.ShowDialog の次の行に制御が戻りますので、ここで DataGridView をリフレッシュすれば良いのではないでしょうか? 無条件にリフレッシュするのが嫌なら、Form が持つ DialogResult プロパティを利用したり、FormB にパブリックプロパティを設けて、FormA でその中身をチェックしたりしてからリフレッシュすれば良いかと思います。
補足
DialogResult プロパティの使い方がわからないのですが、どこにどう記述すればよいのでしょうか?お願いします。
お礼
お返事おそくなりましたができました。 ありがとうございました。