Windows 窗體關閉後刪除的窗體數據 (Form data erased after Windows form is closed)


問題描述

Windows 窗體關閉後刪除的窗體數據 (Form data erased after Windows form is closed)

I have a subsidiary form where I can enter data and then save it before closing the form and going back to using the main form. When I re‑open the subsidiary form, I cannot see the changes in the data that I had entered earlier. Can anyone tell me where I'm wrong ?

 MainForm.vb
    Public Class Maincls
    oTestObj as New Testcls
    oTestObj.XYZ = "XYZ"

    Private Sub SoftwareSettingsToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SoftwareSettingsToolStripMenuItem.Click

    Testcls.tbXYZ.Text = oTestObj.m_XYZ
    Testcls.Show()
    End Sub
    End Class


    Form_Testcls.vb
    Public Class Testcls

    Structure Params
    Dim m_XYZ as String
    End Structure
    Dim oParams as Params

    Public Sub New ()
    InitializeComponent()
    End Sub

    Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
    XYZ = tbXYZ.Text
    Me.Hide()
    End Sub

    Public Property XYZ() As String
            Get
                Return Me.oparams.m_XYZ
            End Get
            Set(ByVal value As String)
                Me.oparams.m_XYZ = value
            End Set
       End Property
    End Class

‑‑‑‑‑

參考解法

方法 1:

I think in windows forms the work around for this is to create a static class and add properties according to your requirement. Then populate these static properties on closing of your form. Now you can use the value set in the static data members, unless otherwise you change them on any other event.

Edit: In vb.net the Static is actually NonInheritable

(by Sharat ChandraAmmar)

參考文件

  1. Form data erased after Windows form is closed (CC BY‑SA 3.0/4.0)

#.net-4.0 #winforms #vb.net






相關問題

SendKeys.Send NullReferenceException (SendKeys.Send NullReferenceException)

訪問 MarkupExtension.ProvideValue 中的構造函數參數 (Access to a constructor parameter within MarkupExtension.ProvideValue)

調試時使用 WorkflowInvoker 發生瘋狂的內存洩漏 (Crazy memory leak with WorkflowInvoker while debugging)

為跨域的 .NET Framework 靜默安裝創建部署應用程序? (Creating a deployment application for .NET Framework silent install across domain?)

Windows 窗體關閉後刪除的窗體數據 (Form data erased after Windows form is closed)

如何從 php wordpress 服務器呈現 aspx 頁面 (How to render an aspx page from a php wordpress server)

嘗試通過方法“System.Web.Helpers.Json.Decode(System.String)”訪問字段“System.Web.Helpers.Json._serializer”失敗 (Attempt by method 'System.Web.Helpers.Json.Decode(System.String)' to access field 'System.Web.Helpers.Json._serializer' failed)

如何使用 Windows 資源管理器顯示項目和詳細信息展開/折疊 (How to Display Items and Details with Windows Explorer Expand/Collapse)

在 C# 中通過反射訪問屬性 (Accessing attribute via reflection in C#)

連續輸入時不要引發 TextChanged (Don't raise TextChanged while continuous typing)

MSMQ 異步異常行為 - .NET 4.0 與 .NET 2.0 (MSMQ asynchronous exception behavior - .NET 4.0 vs .NET 2.0)

多線程 WMI 調用 - 如何最好地處理這個? (Multithreading WMI calls - how best to handle this?)







留言討論