- ベストアンサー
DataGridViewの値を別フォームに
- Form1のDataGridViewから選択した値をForm2に渡し、そのまま表示させたいです。
- DataGridViewの選択した値を別のフォームに渡し、そのまま別フォームのDataGridViewを表示させたいです。
- Form1のDataGridViewの値の条件で抽出した結果をForm2のDataGridViewに表示したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Valueの部分で >キャストできませんのエラーになります。 当然です。「f.txt条件」は「テキストボックスを示すオブジェクトそのもの」で、オブジェクトには、オブジェクトしか代入できません。 「f.txt条件」テキストボックスに、値をセットする場合は、テキストボックスの「Textプロパティ」に値を代入します。 f.txt条件.Text = Me.DataGridView.SelectedRows(0).Cells(7).Value
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8759/19873)
追記。 ShowDialog()したフォームは、閉じられても、リソースが開放されません。 Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Dim f As New Form2 f.txt条件.Text = Me.DataGridView.SelectedRows(0).Cells(7).Value f.ShowDialog() f.Dispose() ’リソースを明示的に開放する End Sub のように、Disposeを呼び出して、明示的にリソースを開放しなければなりません。 なお、以下のように「ShowしてCloseした場合」には、Disposeは不要です。 Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Dim f As New Form2 f.txt条件.Text = Me.DataGridView.SelectedRows(0).Cells(7).Value f.Show() f.Close() ’Closeで自動的にリソースが開放され、破棄される End Sub なお、VB2005以降ではUsingステートメントで、明示的なリソース開放をせず、暗黙的にリソース開放できるようになりました。 Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Using f As New Form2 'Dimの代わりにUsingを使用する f.txt条件.Text = Me.DataGridView.SelectedRows(0).Cells(7).Value f.ShowDialog() End Using ’リソースが暗黙的に開放される End Sub
お礼
ご指摘ありがとうございます。 早速追加しました。
お礼
回答ありがとうございます。 おかげさまでエラーはなくなりました。 あとは、受け渡しの時は、Form2でクリックをしなくても表示したいのです。 改めてよろしくお願いします。
補足
すいません、Form2でコントロールします。