2012-10-17 51 views
0

使用VB.Net如何將值傳遞給當前活動窗體

我有主窗體名稱爲Form1和彈出形式的名稱作爲窗口2

Form1中

tab button - 用於創建Form1的多張副本在運行時...

創建多張的1跳轉在運行時代碼

Form1的代碼

Dim mEntryForm As form1 
     mEntryForm = New form1 
     mEntryForm.Show() 

上述代碼在運行時創建form1的同一副本。

現在我想從彈出的形式的值傳遞給當前的ActiveForm

代碼值從彈出窗體(Form)

form2code

form1.textbox1.text = "100" 

上面的代碼發送到Form1去form1 textbox,而不是活動表格(mentryform

如何解決這個問題。

極品Vb.net代碼幫助

+0

這沒有意義。你爲什麼想要有多個主表單?然後嘗試用彈出窗口控制它們。對我來說,這聽起來像彈出應該是主要的,然後你應該有Form1的彈出窗口。這樣,您可以跟蹤數組中的所有Form1,並追蹤當前活動的「主窗體」。無論是這個或一個適當的主窗體,多個form1和一個彈出窗口。這使得一切都變得更加有用...... – WozzeC

+0

使用* type name *引用表單是一個非常糟糕的VB.NET實踐。使得學習面向對象編程變得非常困難。當然在這裏吹得很厲害。你需要mEntryForm.TextBox1.Text。你想要的許多實例中哪一個是無法猜測的。 –

回答

2

雖然我完全以使用有關問題的意見同意我會盡力給你解決

屬性添加到您的窗體2 名smtng像ActiveForm1爲Form1

,因爲我一直搞不明白completey你的概念:

- >如果Form2的是ShowDialog的形式,那麼你不能更改活動Form1上。 您需要設置該屬性ActiveForm1

dim frm2 as new form2 
frm2.ActiveForm1=me 
frm2.ShowDialog 

- >如果窗體2不是ShowDialog的,這意味着你可以改變活動Form1中 那麼你需要添加的代碼,這段臺詞時,Form1上被激活

frm2.ActiveForm1=me 

現在,在窗口2:

me.ActiveForm1.textbox1.text = "100" 

我希望我幫你。

相關問題