投稿者 伊右衛門  (社会人) 投稿日時 2020/9/5 22:17:17
初めまして、質問よろしくお願いします。
ざっくり?書くと、親フォームから子フォームを呼び出し、孫フォームで修正後、子フォームのデータを書き換えたいです。

form1からbuttonでform2をshowdialogにて呼び出します。
form2にはdatagridviewが作成してあり、csvファイルからデータを読み込んで表示しています。

・セルのダブルクリックイベントからform3にデータを渡して表示させます
   Private Sub DataGridView_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        '◇◇-- DataGridView1をダブルクリックすると呼び出されるイベント --◇◇
        '◇- ヘッダー以外をダブルクリックしているか判定 -◇
        If e.ColumnIndex >= 0 And e.RowIndex >= 0 Then
            '◇- 編集画面表示 -◇
            Dim Form_DAILY As New Form3
            '◇- ダブルクリックされたデータを「編集画面」に表示させる -◇
            Form_DAILY.TextBox1.Text = Trim(sender.Rows(e.RowIndex).Cells(0).Value)
            Form_DAILY.TextBox2.Text = Trim(sender.Rows(e.RowIndex).Cells(1).Value)
            Form_DAILY.ComboBox1.Text = Trim(sender.Rows(e.RowIndex).Cells(2).Value)
            Form_DAILY.ComboBox2.Text = Trim(sender.Rows(e.RowIndex).Cells(3).Value)
            Form_DAILY.TextBox5.Text = e.RowIndex
            Form_DAILY.Button2.Visible = False
            Form_DAILY.StartPosition = FormStartPosition.CenterScreen
            Form_DAILY.ShowDialog(Me)
            Form_DAILY.Dispose()
        End If
    End Sub

・form3で修正後、form2のdatagridviewを書き換えたいのですが、form2のrowcountもcolumncountも0になってしまい
「追加情報:インデックスが範囲を超えています。負でない値で…」のエラーが出てしまい書き換えることができません。
        Form2.DataGridView1.Rows(CInt(TextBox5.Text)).Cells(0).Value = TextBox1.Text
        Form2.DataGridView1.Rows(CInt(TextBox5.Text)).Cells(1).Value = TextBox2.Text
        Form2.DataGridView1.Rows(CInt(TextBox5.Text)).Cells(2).Value = ComboBox1.Text
        Form2.DataGridView1.Rows(CInt(TextBox5.Text)).Cells(3).Value = ComboBox2.Text
        Me.Close()

このようなやり方で書き換えることはできないのでしょうか?
よろしくお願いします。