none
VB2008 不同表單中陣列數據的傳遞 RRS feed

  • 問題

  • 請教各位大大!小弟所建構的專案下在form1的程式中進行數據的收集!並在MOUDEL 中宣告一個class 來做數據的暫存
     
    Public Class DataMOVE
            Public ADATA(100) As Integer
    End Class
    在form1的環境下做數據收集(會隨時間改變內容值)

    Dim myobj as NEW DataMOVE
    For Numm As Integer = 0 To 100
                        Dim Tim As String = Mid(TEMPSTR, 27 + (Numm * 4), 4)
                        Tim = System.Convert.ToInt32(Tim, 16)
                        myobj.ADATA(Numm) = Tim
    next

    然後在form2的環境下呼叫出來(測試將陣列其中一個的值顯示出來)

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
         Dim myobj as NEW DataMOVE
    textbox1.text=myobj.ADATA(0)    End Sub


    沒有任何值跑出來/中斷程式來看myobj.ADATA()陣列中每一個均為nothing

    目前是直接宣告 public ADATA(100) as string 來使用..目前的方式!小弟是怕在其他表單下做運算時會發生取值時會發生錯誤

    請各位大大指導一下 小弟關於這部份的應用方式

    新手上路
    2009年9月3日 下午 12:54

解答

  • 其中一個解法
    1. 請將Class 獨立宣告, 不要宣告在模組中
    2. 在模組內使用這個Class產生執行個體. 而不是在Form1 或 Formx中產生


    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重。如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    • 已標示為解答 eblue 2009年9月4日 上午 12:58
    2009年9月3日 下午 01:03
    版主

所有回覆

  • 其中一個解法
    1. 請將Class 獨立宣告, 不要宣告在模組中
    2. 在模組內使用這個Class產生執行個體. 而不是在Form1 或 Formx中產生


    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重。如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    • 已標示為解答 eblue 2009年9月4日 上午 12:58
    2009年9月3日 下午 01:03
    版主
  • Sub Button6_Click
    宣告的話,會變成重新覆寫宣告。

    你最好先把線上手冊關於變數生命週期的部分看一遍。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年9月3日 下午 01:39
  • 感謝大大的指導~~這樣的數據傳遞起來穩定了.繼續測試
    新手上路
    2009年9月3日 下午 01:56
  • 謝謝心冷大大的提醒!!那個button6 是小弟誤植..謝謝大大提醒關於變數的生命週期..
    這樣又多懂一個觀念了..
    新手上路
    2009年9月3日 下午 01:59