要重建這種行爲,你需要創建一個具有以下特性的彈出形式:設置ShowInTaskBar =假,導致收盤在.NET模式窗體時閃爍,的WinForms
(1)ShowInTaskBar =假
(2)用Show方法顯示窗體並循環,直到窗體不可見。
(3)爲了在鼠標被點擊時關閉窗體,重寫OnDeactivate並將可見設置爲False。
接下來,創建另一種形式是單擊按鈕時會顯示彈出:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Syste
Using pop As New PopUp
pop.Visible = True
Do While pop.Visible
Application.DoEvents()
NativeMethods.MsgWaitForMultipleObjectsEx(0, IntPtr.Zero, 250, &HFF, 4)
Loop
Me.Activate()
End Using
End Sub
啓動項目,展開形式來填充屏幕,然後單擊按鈕,打開彈出向上。 然後點擊回到原始表格的任何位置。 大多數情況下(但並非總是如此),原始形態在再次出現之前會在一瞬間消失 - 因此會導致閃爍效應。
鑽研反射和System.Windows.Forms.Design.DropDownHolder我發現的CreateParams,解決閃爍問題如下:
createParams.Style = (createParams.Style Or -2139095040)
不幸的是,它也讓黑色邊框的形式。 (你必須設置FormBorderStyle = System.Windows.Forms.FormBorderStyle.None才能看到這個。)
有沒有人知道這種風格除了將黑色邊框放在窗體外還有什麼作用?
我已經在谷歌搜索號碼和十六進制等價物,但沒有找到。
謝謝。
ETA:我看了一下風格常量列表pinvoke.net,但我並不聰明。
謝謝,這就是現貨! – Jules