• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataGridViewの再表示方法)

DataGridViewの再表示方法

このQ&Aのポイント
  • VB2005、SQLServer2005環境で、FormAのDataGridViewを最新のデータで再描画する方法を教えてください。
  • FormAのDataGridViewを再描画するためには、FormBでデータを登録し、FormBを閉じるタイミングでResetBindingsを使用する必要があります。
  • DataGridViewの再描画方法についての具体的なコード例や手順をご教授いただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#259269
noname#259269
回答No.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()

noname#208236
質問者

お礼

お返事おそくなりましたができました。 ありがとうございました。

その他の回答 (2)

noname#259269
noname#259269
回答No.2

DialogResult というキーワードが与えられているわけですから、Google に聞いてみるとかやり方はあると思うのですが。。。 http://dobon.net/vb/dotnet/form/okcancelbutton.html

noname#208236
質問者

補足

すみません。調べてはみたのですがうまくいきません。 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

noname#259269
noname#259269
回答No.1

FormA から FormB をオープンする時に、たぶん ShowDialog を使っていますよね? その前提で回答します。 FormB を 閉じた時点で FormA 内の FormB.ShowDialog の次の行に制御が戻りますので、ここで DataGridView をリフレッシュすれば良いのではないでしょうか? 無条件にリフレッシュするのが嫌なら、Form が持つ DialogResult プロパティを利用したり、FormB にパブリックプロパティを設けて、FormA でその中身をチェックしたりしてからリフレッシュすれば良いかと思います。

noname#208236
質問者

補足

DialogResult プロパティの使い方がわからないのですが、どこにどう記述すればよいのでしょうか?お願いします。