這是一個(gè)關(guān)于模態(tài)窗口與非模態(tài)窗口的問題。

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)景谷免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
實(shí)現(xiàn)非模態(tài)窗口也沒什么難度
Dim form As New Form1
form.TopMost = True
form.Show()
你再將鼠標(biāo)移到父窗口上,彈出的窗口也不會消失。
引用API函數(shù)SetWindowPos就可以解決。下面看看代碼:
Private?Declare?Function?SetWindowPos?Lib?"user32.dll"?(ByVal?hwnd?As?Long,?ByVal?hWndInsertAfter?As?Long,?ByVal?x?As?Long,?ByVal?y?As?Long,?ByVal?cx?As?Long,?ByVal?cy?As?Long,?ByVal?wFlags?As?Long)?As?Long
Const?SWP_NOMOVE?=?H2
Const?SWP_NOSIZE?=?H1
Const?FLAG?=?SWP_NOMOVE?Or?SWP_NOSIZE
Const?HWND_TOPMOST?=?-1
Const?HWND_NOTOPMOST?=?-2
Const?HWND_TOP?=?0
Const?HWND_BOTTOM?=?1
將窗口設(shè)置最前:Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAG)
取消窗口的最前:Call SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAG)
函數(shù)的第一個(gè)參數(shù)是根據(jù)實(shí)際情況改變的,它要求給它傳送一個(gè)窗口的句柄,這里的 Me.hwnd 就給函數(shù)傳送了當(dāng)前窗口的句柄,也就是將當(dāng)前窗口前置或取消前置。如果要前置其他窗口,那么請向函數(shù)傳送其他窗口的句柄,這個(gè)可以根據(jù):FindWindow API函數(shù)獲取。
如果要不會被DIRECTX全屏的程序覆蓋,那么加上一個(gè)timer事件,每隔一秒就把窗口顯示在前面,哈哈我測試過了有效,以前學(xué)過一個(gè)學(xué)期的VB。
代碼如下
Option Explicit
Const Hwndx = -1
Private Declare Function SetWindowPos Lib "user32" (ByVal Hwnd As Long, _
ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Dim XX As Long
XX = SetWindowPos(Me.Hwnd, Hwndx, 0, 0, 0, 0, 3)
End Sub
記住別忘加timer按鈕
或者這樣
建立模塊
Option Explicit
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Sub Form_Load()
Dim rtn
'讓窗口在頂層
rtn = SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3)
'取消窗口在頂層
'rtn = SetWindowPos(F_V.hwnd, -2, 0, 0, 0, 0, 3)
End Sub
標(biāo)題名稱:vb.net總在最前,vb窗口始終在最前面
文章源于:http://chinadenli.net/article28/hcpojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、小程序開發(fā)、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)