0
我有一個while循環解析csv文件,並將變量插入一系列數組中。這是由我的主窗體上的一個按鈕調用的。存儲由while循環生成的變量
這些變量用於圖表(它在同一個子圖中),也用於在單獨窗體上的數據網格。
第一次單擊按鈕時,一切正常,但如果再次單擊它,單獨窗體上的數據網格不會填充,因爲我失去了變量。
所以while循環,其解析CSV文件中,我有這樣的:
frmNumericChart.DataGridView1.Rows.Add(freq, dBu, dbnorm, ScaleFactor)
我試圖使變量公衆,而是因爲他們是陣列,構建從while循環,我可以」似乎使他們公開。
我的代碼(編輯爲簡潔起見)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sFile As String = strFileName
' get the minimum and maximum frequencies
Dim Lines As Collections.Generic.IEnumerable(Of String) = File.ReadLines(strFileName)
Dim Line0 As String = Lines.FirstOrDefault
Dim LineN As String = Lines.LastOrDefault
Dim lowestFreq As String() = Line0.Split(New Char() {","c})
Dim highestFreq As String() = LineN.Split(New Char() {","c})
Dim lowFreq As String = lowestFreq(0)
Dim highFreq As String = highestFreq(0)
Dim refFrequencyX = Lines(18)
Dim refFreq As String() = refFrequencyX.Split(New Char() {","c})
Dim ScaleFactor As String = refFreq(1)
Using sr As New StreamReader(sFile)
While Not sr.EndOfStream
Dim sLine As String = sr.ReadLine()
If Not String.IsNullOrWhiteSpace(sLine) Then
sData = sLine.Split(","c)
arrName.Add(sData(0).Trim())
arrValue.Add(sData(1).Trim())
End If
Dim freq As Decimal = sData(0)
Dim dBu As Decimal = sData(1)
Dim voltage As Decimal = sData(1)
' dbnorm - normalise output to 0dBu ref 1kHz
Dim dbnorm = Math.Round(dBu - ScaleFactor, 4)
frmNumericChart.DataGridView1.Rows.Add(freq, dBu, dbnorm, ScaleFactor)
Chart1.Series(0).Points.AddXY(freq, dbnorm)
End While
End Using
' (chart is constructed here)
end sub
我怎樣才能讓這些數組變量全球性的?
請原諒我的劣質代碼 - 我這樣做是爲了愛好和學習。
請參見[參考變量和對象在窗體中的其他位置](http://stackoverflow.com/q/33248704/1070452) – Plutonix
恐怕根本沒有幫助我。試圖按照該頁面上給出的示例導致我加載一些錯誤。 – Tony