VB 2010 (69)附屬窗體

2021-10-05 13:16:17 字數 1093 閱讀 5508

附屬窗體在應用程式的上面浮動,但不會影響應用程式的使用。例如「查詢和替換』』視窗。但是,附屬窗體並不位於所有窗體的上面,只是位於擁有它的窗體的頂部。

當乙個窗體屬於另乙個窗體時,所有者窗體和附屬窗體會同時最小化或者關閉。附屬窗體永遠顯示在其所有者窗體的前面,但不會阻止所有者窗體獲得焦點和使用。儘管如此,如果要單擊被附屬窗體所覆蓋的區域,就必須先移動附屬窗體。

窗體在某一時刻只能有乙個所有者窗體。如果窗體已經被form1所擁有,當把它新增到form2的附屬窗體集合中時,該窗體就不再被form1所擁有。

使窗體成為另乙個窗體的附屬窗體有兩種方式:在所有者窗體中或者在附屬窗體中進行設定。

1.addownedform方法

在所有者窗體中,使用addownedform方法可以使另乙個窗體成為該窗體的附屬窗體。下面的**使form2例項被form1所擁有。這些**可以位於form1的某個位置,但一般位於把form2例項顯示到螢幕上的**前面:

dim frm2 as new form

me.addownedform(frm2)

frm2.show()

2.owner屬性

這個關係也可以在附屬窗體中建立。為此,需要使用窗體的owner屬性。下面的方法在form2中工作,把乙個窗體作為引數傳遞給該方法,就可以把form2設定為傳入窗體的附屬窗體:

private sub form2_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load

me.owner = form1

end sub

3.ownedforms集合

所有者窗體可以用ownedforms屬性訪問它的附屬窗體集合。下面的**遍歷了該窗體擁有的全部附屬窗體:

dim frmownedform as form

for each frmownedform in me.ownedforms

msgbox(frmownedform.name)

next

4.用form.removeownerform方法刪除附屬窗體

VB窗體置頂

private declare function setwindowpos lib user32 alias setwindowpos byval hwnd as long,byval hwndinsertafter as long,byval x as long,byval y as long,b...

vb 建立圓角窗體

private declare function setwindowrgn lib user32 byval hwnd as long,byval hrgn as long,byval bredraw as boolean as long private declare function creat...

VB窗體控制示例

以下新增到窗體中 private declare function findwindow lib user32 alias findwindowa byval lpclassname as string,byval lpwindowname as string as long private dec...