Pour recréer ce comportement, vous devez créer une forme de pop-up avec les propriétés suivantes:Réglage ShowInTaskBar = False, provoque le scintillement lors de la fermeture sous forme modales en .net, WinForms
(1) ShowInTaskBar = False
(2) Afficher le formulaire avec la méthode Show et faire une boucle jusqu'à ce que le formulaire ne soit pas visible.
(3) Pour fermer le formulaire lorsque vous cliquez sur la souris, remplacez OnDeactivate et définissez visible sur False.
Ensuite, créez une autre forme qui affichera la fenêtre contextuelle lorsqu'un bouton est cliqué:
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
démarrer le projet, développez le formulaire à remplir l'écran, puis cliquez sur le bouton pour ouvrir la pop- en haut Cliquez ensuite sur n'importe où dans le formulaire original. La plupart du temps, mais pas toujours, le formulaire original disparaît pendant une fraction de seconde avant de réapparaître, provoquant ainsi un effet de scintillement.
Fouiller dans le réflecteur et System.Windows.Forms.Design.DropDownHolder je trouve ce qui suit dans CreateParams qui permet de résoudre le problème de scintillement:
createParams.Style = (createParams.Style Or -2139095040)
Malheureusement, il met également une bordure noire autour de la forme. (Vous devrez définir FormBorderStyle = System.Windows.Forms.FormBorderStyle.None pour voir ceci.)
Est-ce que quelqu'un a une idée de ce que fait ce style à part mettre la bordure noire autour du formulaire?
J'ai cherché google avec le nombre et l'équivalent hex mais je ne trouve rien.
Merci. ETA: J'ai regardé une liste de constantes de style au pinvoke.net mais je ne suis pas le plus sage.
Merci, c'est tout! – Jules