在VB

2015-11-09 34 views
-1

形式之間共享屬性,我到二者之間傳遞的屬性forms.in窗體2:我已經創建了財產IsFilterEnabled和formmain在VB

Public Property IsFilterEnabled() As Boolean 
     Get 
      Return mIsEnabled 
     End Get 
     Set(ByVal Value As Boolean) 
      mIsEnabled = Value 
     End Set 
    End Property 
    Public Sub FilterButton_Click() Handles FilterButton.Click 
     Dim currentRow As Data.DataRow 
     If vessel_NameComboBox.SelectedIndex > -1 Then 
      mIsEnabled = True 
      formMain.LoadData() 
     End If 
    End Sub 

Formmain

Dim frm2 As New Form2 
If frm2.IsFilterEnabled = True Then End 

數據訪問本在創建form2的新實例時,IsFilterEnabled屬性丟失。如何在formmain中獲取form2的同一實例以訪問該propery

+6

谷歌的標題第一 –

+0

有人能幫助 – Priya

回答

0

給自己財產的全球範圍內,其他成員之間的共享,通過聲明時,它使用Shared關鍵字。

Public Class Form2 : Inherits Form 

    Public Shared Property MyProperty As Object 

End Class 

然後你就可以隨時隨地訪問共享值:

Public Class Form1 : Inherits Form 

    Form2.MyProperty = "1st Hello World!" 

    Dim f As New Form2 
    f.MyProperty = "2nd Hello World!" 
    f.Show() 
    f.Dispose() 

    MsgBox(Form2.MyProperty.ToString) 

End Class 
+1

非常感謝..但我需要設置MyProperty =「1st Hello World!」的屬性值!在form2本身..當我創建Dim f作爲Form1中的新Form2,數據丟失 – Priya

+0

根據我的代碼,我已經在form2本身設置mIsEnabled Public Sub FilterButton_Click()Handle FilterButton.Click Dim currentRow As Data.DataRow 如果vessel_NameComboBox.SelectedIndex> -1然後 mIsEnabled =真 formMain.LoadData() 結束如果結束 小組 – Priya

0

在Form2的構造函數中傳遞該屬性。

Public Sub New(enabled As Boolean) 
    InitializeComponent() 

    'Process using enabled arg 
End Sub 
+0

我怎樣才能formmain訪問窗口2,而無需創建新實例,不丟失數據 – Priya

+0

@Priya實例化你的新Form2是私人的,這樣你可以跟蹤並訪問同一個實例。 – Ox1

+0

我試圖在form2中實例化,但仍然無法在formmain中訪問 – Priya