public shared m_add as string ‘這樣我們在form1的任何地方都可以更改m_add的值
private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
m_add = "111"
end sub
在form2中寫入:
private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
messagebox.show(form1.m_add) ‘顯然我們可以得到form1的這個變量了
end sub
注意:使用shared時,不用定義實例,被定義成shared的變量或?qū)傩栽谒械膶嵗卸际且粋€值。就象上面的例子中使用form1.m_add一樣。所以如果是打開很多的同一個窗體的實例時,該值不變化,可以用來記錄打開的實例數(shù)量。
3.這種方法傳遞一個窗體實例過去,這樣就可以獲得該實例的變量與屬性了。當(dāng)然也可以對他們進(jìn)行操作。
例如:在form1中
dim frm as new form2(me)
frm.show()
在form2中:
dim m_parent as form1
public sub new(byval sender as object)
mybase.new()
'該調(diào)用是 windows 窗體設(shè)計器所必需的。
initializecomponent()
'在 initializecomponent() 調(diào)用之后添加任何初始化
m_parent=ctype(sender,form1) ‘或者m_parent=directcast(sender,form1)
end sub
private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
m_parent.textbox1.text = "1111"
end sub
4.設(shè)置一個屬性來控制訪問
這種方式在new 一個窗體后,show他出來前設(shè)置它的一個公共屬性,這個屬性就是本窗體的實例。當(dāng)然也可以不是一個屬性而是一個公共的字段。
如:在form1中:
dim newform as new form2()
newform.setparentform = me
newform.show()
在form2中:
dim m_parentform as form1
public property setparentform as form1
get
return m_parentform
end get
set (byval value as form1)
m_parentform = value
end set
注意:如果是mdi類型的話,可以通過子窗體的parentform屬性獲得相應(yīng)的主窗體實例,這樣就可以操作主窗體的控件或?qū)傩粤恕?/SPAN>
新聞熱點
疑難解答
圖片精選