我有相當多的中描述了同樣的問題本,但使用VB.NET。有一個 Form1 作為啟動視窗自動打開,所以我找不到用于訪問它的實體。從 Form1 中打開了一個 Form2。我嘗試使用關鍵字“我”傳遞 Form1 的實體:
Private Sub Button1_click(...) Handles Button1.Click
Dim childform as new Form2(Me)
childform.show()
End Sub
在 Form2 我有:
Public Sub New(parentform As System.Windows.Forms.Form)
InitializeComponents()
MessageBox.Show(parentform.Button1.Text)
End Sub
編譯時出現錯誤:“Button1 不是 Form 的成員”。那么如何將 Form1 實體正確傳遞給 Form2 呢?
另外我想從 Form2 更改 Form1 的 Button1 的一些屬性。Button1 是在 Private Sub 中宣告的,如果我正確傳遞實體,我還能從 Form2 訪問它嗎?如果沒有,我可以在 Form1 中宣告一個子程式,例如
Public Shared Sub ChangeText(newtext As Sting)
Me.Button1.Text=newtext
End Sub
那會做嗎?
uj5u.com熱心網友回復:
我不是 100% 確定您要實作的目標,但是,您可以在表單之間傳遞資料。例如,您可以執行以下操作:
Public Class Form1
Private Sub Button1_click(...) Handles Button1.Click
Dim newForm2 as New Form2()
newForm2.stringText = ""
If newForm2.ShowDialog() = DialogResult.OK Then
Button1.Text = newForm2.stringText
End If
End Sub
End Class
在 Form2 中你有
Public Class Form2
Dim stringText as string
Private Sub changeStringText()
'your method to change your data
Me.DialogResult = DialogResult.OK 'this will close form2
End Sub
End Class
我希望這是你需要的,如果沒有讓我知道
uj5u.com熱心網友回復:
感謝您的回答和評論。所以我為 parentform 宣告了錯誤的類,這意味著在 Form2 中它需要是“parentform as Form1 ”:
Public Sub New(parentform As Form1)
InitializeComponents()
MessageBox.Show(parentform.Button1.Text)
End Sub
是的,我需要跳過 ChangeText 中的“共享”:
Public Sub ChangeText(newtext As Sting)
Me.Button1.Text=newtext
End Sub
這樣它對我有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383741.html
上一篇:一個模塊中有多少個翻譯單元?
