none
VB2008 在form中放置一個TabControl元件的應用疑問 RRS feed

  • 問題

  • 想請教各位大大..
    我在form1中呼叫 Form2.ShowDialog()
    我在form2上部屬了一個TabControl元件..並在form的load事件中輸入以下程式碼
          OWCTABLE是一個全域性的Datatable
          Public OWCTABLE As New DataTable

             Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '標籤1:
             DateTimePicker1.Value = DateAdd(DateInterval.Day, -15, Now) 
            DateTimePicker2.Value = Now
            '標籤2:
            DateTimePicker3.Value = DateAdd(DateInterval.Day, -15, Now)
            DateTimePicker4.Value = Now
            ComboBox2.Text = ComboBox2.Items(0)
            OWCTABLE.Columns.Add("1")
            OWCTABLE.Columns.Add("2")
        End Sub
    當第一次進入時!程式可正常的啟動
    第二次進入時..會出現 這個 DataTable 已經有名稱為 '1' 的資料行。

    所以我在closed的事件中對OWCTABLE做Dispose 但是仍舊會出現相同的訊息..
    在Load 跟closed 事件中設立中斷點..但是程式卻沒進入該中斷點..
    請問這樣我該用什麼方式卸載OWCTABLE
    新手上路
    2009年9月15日 上午 11:26

解答

  • 試試看

    Close 時
            OWCTABLE.Dispose()
            OWCTABLE = Nothing


    初始化時
            If OWCTABLE Is Nothing Then
                OWCTABLE = New DataTable
            End If


    .NET菜鳥自救會 http://www.dotblogs.com.tw/chou/
    • 已標示為解答 eblue 2009年9月16日 下午 03:58
    2009年9月15日 上午 11:32
    版主

所有回覆

  • 試試看

    Close 時
            OWCTABLE.Dispose()
            OWCTABLE = Nothing


    初始化時
            If OWCTABLE Is Nothing Then
                OWCTABLE = New DataTable
            End If


    .NET菜鳥自救會 http://www.dotblogs.com.tw/chou/
    • 已標示為解答 eblue 2009年9月16日 下午 03:58
    2009年9月15日 上午 11:32
    版主
  • eblue:       
    你可以在這兩行前做判斷
    If OWCTABLE.Columns.Count <=0 Then
            OWCTABLE.Columns.Add("1")
            OWCTABLE.Columns.Add("2")
    End if
    學而不思則罔, 思而不學則殆. 寫程式無他, 唯勤而已.
    2009年9月15日 下午 01:28
    版主
  • 你是用 ShowDialog 嗎?對話盒跟 Form.Show 不一樣,關閉只是隱藏而非載出,所以依此調整你的邏輯即可。
    先前討論也有,可以搜尋 ShowDialog 。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年9月15日 下午 01:38
  • OWCTABLE是一個全域性的Datatable

    因為是全域的,所以Form第二次打開時,OWCTABLE就已經有1跟2這二個欄位了
    您可以依照Bill大講的,在Add之前先做判斷
    2009年9月15日 下午 03:32