Form VS 2005 empecher fermeture [Résolu]

Signaler
Messages postés
129
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
24 août 2006
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour a tous,

Je cherche a empecher la fermeture d'une Form en VB.NET version 2005.

Avec la version 2003 j'utilisais ca qui marchait tres bien, mais il veut pas sous 2005:

Private Sub FrmLayerEditor_Closing(ByVal sender As Object, ByVal eventArgs As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
eventArgs.Cancel = True
End Sub

Comment fait on pour empecher la fermeture d'une form sous vb 2005?

Merci

Jeremy

4 réponses

Messages postés
129
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
24 août 2006

C'est toujour quand on pose la question qu'on trouve...

Voici ce qui marche:

Private Sub FrmGISLayer_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
End Sub
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut !

Je ne te garantis pas que cette technique fonctionne en VB.net mais en VBA, c'est super, ça permet d'occulter la croix :

En haut, en déclaration de ta Form :

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long


Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long


Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Puis dans l'initialize de ta Form :

Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

Seul bug qui peut apparaitre, c'est si tu changes le Texte du Caption de ta form, après chargement (suivant les besoins, ça peut arriver) dans ce cas, la croix revient.

@ ++

Mortalino
Messages postés
129
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
24 août 2006

Ca parait complique mais c bon a savoir!

Merci

A ++
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
C'est un Appel d'API : sans forcément le comprendre, ce qui importe c'est de savoir ce que ça fait, et où le placer.

Ce qui est en bleu, c'est a mettre en tout premier dans le module de ta form, et ce qui est en vert, c'est dans
Form1_Initialize ( )

Ca vaut le coup peut-être d'essayer !!

@ ++

Mortalino