このフォーラムは初めてです。これは私の最初の投稿ですが、ここでは答えを探すのに多くの時間を費やしています。参照Form2.DataGridView from Form1のコード
私はVBAをExcelで長年使用していましたが、最近Visual Studio 2015でVBを使用し始めました。私はMDIContainerとしてフォーム1を作成しました。このフォーム(FormXYZ)には、DataGridViewが含まれています。
Form1にはMenuStripがあり、現在、これらのメニュー項目の1つが選択されているときに、コードを書き込んでCSVからDGVを読み込もうとしています。この段階では、データを読み込もうとしているだけです。次にコードを操作して文字列を分割します。
私はインポートするファイルを選択して問題がないとのStreamReaderは、ファイルを読み込むように見えますが、データはDGVにそれを行うものではありません。
ボタンクリックイベントのFormXYZにコードを挿入しようとすると、DGVが読み込まれました。私は、DGVを参照している方法によるエラーであると考えています.MenuStrip_ClickイベントのコードはForm1にありますが、DGVはFormXYZにあります。
私が間違っている場所を誰かが指摘できるかどうかは分かります。私のコードは以下の通りです。
おかげTepedeあなたは、あなたがそれの定義は、フォームのLoadであることに起因する表示FormXYZにあなたのインスタンスを失っているように見えます
Imports System.IO
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim FormXYZ As New FormXYZ()
FormXYZ.MdiParent = Me 'Set the Parent Form of the Child window.
FormXYZ.Show() 'Display the XYZ form.
End Sub
'-------------------------------------
'StripMenu click command to import CSV
Public Sub TSMIFileImportCSV_Click(sender As Object, e As EventArgs) Handles TSMIFileImportCSV.Click
Dim Filename As String
Dim RowValue As String
Dim OpenFile As OpenFileDialog = New OpenFileDialog()
'Open file dialog
With OpenFile
.Filter = "CSV (*.CSV)|*.csv"
.FilterIndex = 1
.InitialDirectory = "C:\"
.Title = "Open File"
.CheckFileExists = False
End With
If OpenFile.ShowDialog() = DialogResult.OK Then
Filename = OpenFile.FileName
End If
'---------
' Read CSV file content
Dim objReader As StreamReader = New StreamReader(Filename)
While objReader.Peek() <> -1
RowValue = objReader.ReadLine()
'Fist column is Boolean, the second should have the data from the CSV file
FormXYZ.DataGridView1.Rows.Add(True, RowValue, "Test", "Test")
End While
objReader.Close()
End Sub