Simple représentation en .net de la propriété Moveable présente dans l'objet feuille (Form) en VB6.
Il existe de nombreuses solutions...comme en agissant sur l'événement Move par exemple.
Je propose la solution d'intercepter (
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.form.wndproc(VS.80).aspx) les messages correspondant envoyés à notre feuille et de les ignorer tout simplement. Je laisse place au code ci-dessous pour mieux comprendre.
'Utilisation de la classe pour votre feuille (ex: Form1)
Public Class Form1
Inherits MoveableForm
End Class
Source / Exemple :
Public Class MoveableForm
Inherits System.Windows.Forms.Form
Private m_moveable As Boolean
Private Const HTCAPTION As Integer = &H2
Private Const WM_SYSCOMMAND As Integer = &H112
Private Const WM_NCLBUTTONDOWN As Integer = &HA1
Private Const SC_MOVE As Integer = &HF010
'Propriété Moveable que l'on retrouve dans VB6
Public Property Moveable() As Boolean
Get
Return m_moveable
End Get
Set(ByVal value As Boolean)
m_moveable = value
End Set
End Property
Public Sub New()
MyBase.New()
m_moveable = True
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m_moveable = False Then
'Recherche les messages correspondants à un déplacement de feuille
'(clic sur barre de titre et/ou commande de déplacement) alors les ignores.
If (m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32() = SC_MOVE) Or _
(m.Msg = WM_NCLBUTTONDOWN AndAlso m.WParam.ToInt32() = HTCAPTION) Then
Exit Sub
End If
End If
MyBase.WndProc(m)
End Sub
Private Sub InitializeComponent()
Me.SuspendLayout()
'
'Moveable
'
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Name = "Moveable"
Me.Text = "toto"
Me.ResumeLayout(False)
End Sub
End Class
Conclusion :
1)Ajouter cette classe à votre projet vb.
2)Hériter votre feuille en question de cette classe
3)Regarder dans les propriétés de votre feuille, la propriété Moveable apparait !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.