Visual Basic, eine Datei zu öffnen, was ist falsch mit meinem Code?
-
20-08-2019 - |
Frage
Die ‚Leser‘ im if-Anweisung zeigt „Expression ist keine Methode“, was mache ich falsch?
Danke
Dim reader As New CSVReader
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
reader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Ich zog einfach die Dim und es hat funktioniert.
OpenFileDialog2.InitialDirectory = "a:"
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
Dim reader As New CSVReader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Danke
Lösung
Auf dieser Zeile:
reader(OpenFileDialog2.FileName)
Sie versuchen, einen Konstruktor für ein Objekt aufrufen, die bereits aufgebaut ist. Das ist nicht möglich, so dass der VB-Compiler interpretiert dies als Sie versuchen, den Leser Objekt aufrufen, als ob es sich um eine Funktion waren.
Nur nicht erklärt die Leser nicht, bis Sie die Dateinamen haben, so dass Sie den Namen an den Konstruktor übergeben kann, wenn Sie es tatsächlich konstruieren, wie so
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
Dim reader As New CSVReader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Andere Tipps
Sie verpassten die Methodennamen in reader(OpenFileDialog2.FileName)
.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow