Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[.NET/.NET2] RETROUVER LA PROPRIÉTÉ MOVEABLE DE VB


Information sur la source



Description

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

  • 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
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 !


 

Commentaires et avis

signaler à un administrateur
Commentaire de DJMCG le 27/01/2007 23:28:28

Bonjour/Bonsoir,

Je suis interressé par la propriété moveable.
Puis-je mettre (droit d'auteur ?) cette source dans mes programmes en vb.net.
Si oui vous pouvez m'apprendre a ecrire l'hérit s'il vous plaît...
Comme ceci ?
Inherits System.Windows.Forms.MoveableForm ??
et doit-je le mettre dans chaque class ?
Merci pour votre aide éventuelle.

Jean-Marie
djmcg


signaler à un administrateur
Commentaire de Willi le 28/01/2007 00:20:10 administrateur CS

Cette source est une démo sur un sujet précis, t'embetes pas avec les droits d'auteurs...
Pour l'héritage, oui c'est bien comme cela qu'il faut l'utiliser. Et oui à définir comme classe de base de toute les feuilles dont tu veux utiliser cette propriété Moveable.

signaler à un administrateur
Commentaire de Bidou le 28/01/2007 00:38:16 administrateur CS

Utile mais tout de même très très léger pour une source, codyx est justement fait pour les snippets de ce genre, non?

signaler à un administrateur
Commentaire de DJMCG le 28/01/2007 01:00:31

Merci Willi,
Ce n'est pas dans un but commercial.
Je ne manquerais pas de mettre un lien dans la rubrique a propos de mes programmes.

---------------------------------
Bidou whats snippets

Encore merci

signaler à un administrateur
Commentaire de Bidou le 18/03/2007 16:22:47 administrateur CS

DJMCG> Un snippet, c'est ceci: http://www.codyx.org/snippet_deplacer-forme-sans-barre-titre_23.aspx

signaler à un administrateur
Commentaire de DJMCG le 18/03/2007 20:49:37

Merci Bidou. Je ne comprenait irne a ce mot; et si j'ai bien compris c'est une form sans barre de titre.
Encore merci. Au moins ici on apprend.
Bonne fin de week-end.
Jean-Marie

signaler à un administrateur
Commentaire de DJMCG le 18/03/2007 20:53:07

Willi, Bonjour/Bonjour,
Je n'ai pas encore compris comment mettre ta source dans mes programme.
J'ouvre un formulaire de classe, j'y met ta source.
Dans les formulaire conserné, j'écris la ligne hérit.
Cela ne semble pas être la procédure correct ??
Si tu a une minute (ou quelqu'un d'autre)....
Merci.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Modifier une form MDI depuis la form mère [ par JCLK ] Ce message s'adresse plus particulièrement au grandissime Amonbofis, mais les réponses de tout le monde sont les bienvenues.Dans un éditeur de texte, Ouvrir une feuille excel dans une form [ par ManBMai ] Bjr !je voudrai simplement ouvrir une feuille excel dans une textbox d'une form...je n'y arrive pointppouvez vous me donner un tuyau ! merci Imprimer des images [ par MSI ] Comment imprimer sur une feuille A4 des images chargées dans des pictureBox disposées sur un form autrement qu'avec printForm ?En effet mes images doi Imprimer des images [ par MSI ] Comment imprimer sur une feuille A4 des images chargées dans des pictureBox disposées sur un form autrement qu'avec printForm ?En effet mes images doi Imprimer des images [ par MSI ] Comment imprimer sur une feuille A4 des images chargées dans des pictureBox disposées sur un form autrement qu'avec printForm ?En effet mes images doi Afficher une feuille excel dans un form [ par malu ] J'aimerais afficher une feuille excel dans un form afin de la modifier si necessaire et de l'imprimer.Quelqu'un peut-il m'aider?Merci! aspect visuel d'une feuille [ par lezabour ] Voila j'aimerai que ma form ne soit plus carré, mais qu'elle puisse etre ronde, ovale ou d'une forme que j'ai decider...il n'y a pas moyen de redessin Inserer une feuille excel ds une form [ par tarantula007 ] Comment peut on inserer et manipuler un objet excel existant dans une formMerci d'avanceHELP EXCEL solution pour problème pas facile du tout? [ par jollyJumper ] voilà la situation:j'ai un fichier texte dans lequel se trouve des informations qu'il me faut récupérer dans des variables(ces informations sont struc solution pour problème pas facile du tout? [ par jollyJumper ] voilà la situation:j'ai un fichier texte dans lequel se trouve des informations qu'il me faut récupérer dans des variables(ces informations sont struc


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,36 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.