Positionement !!!!!! [Résolu]

Signaler
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
bonjour tout le monde
svp j'ai un petit soucis avec mon application
je veut bien que mon application ne se déplace pas hors de l'écran
je vais vous expliqué un peut : quand on déplace le form je veut pas qu'il dépasse la limite de l'écran c'est à dire qu'on peut pas le déplacé hors du l'écran
j'espère que vous pouvez m'aider parceque j'ai vraiment besoin de le faire

merci d'avance

Les yeux montrent la force de l'âme

15 réponses

Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
jmfmarques , salut


je me suis trompé, mon code c'est pour vb.net :)


comment se fait il que en vb6 formMove ne sois pas appelé??










Bonjour chez vous !
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut et bonsoir à tous,

Essaye cela en partant de l'idée de Jmfmarques:

Option Explicit


Dim iOldTop         As Integer
Dim iOldLeft         As Integer
Dim bBadPos       As Boolean


  Private Sub Form_Load()
 
  '-* Affiche Frm
      Me.Show


  '-* Déclenche le timer
      Timer1.Enabled = True
      Timer1.Interval = 100
      Timer1_Timer
     
  '-* Sauvegarde position initial de Frm
      iOldTop = Form1.Top
      iOldLeft = Form1.Left
   
  End Sub


  Private Sub Timer1_Timer()
 
  '-* Test Position
      If (Form1.Top + Form1.Height) > Screen.Height Or Form1.Top < 0 Then MsgBox "Hors limite": bBadPos = True
      If (Form1.Left + Form1.Width) > Screen.Width Or Form1.Left < 0 Then MsgBox "Hors limite": bBadPos = True
     
  '-* Si erreur Test, restitue position initial de la Frm
      If bBadPos Then
         Form1.Top = iOldTop
         Form1.Left = iOldLeft
         bBadPos = False
      End If
     
End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
merci beaucoup pour votre aide

j'ai retiré ce code en conclusion

un timer de valeur 10

If Me.Top < 0 Then Me.Top = "0"
If Me.Left < 0 Then Me.Left = "0"
If (Me.Top + Me.Height) > Screen.Height Then Me.Top = (Screen.Height - Me.Height)
If (Me.Left + Me.Width) > Screen.Width Then Me.Left = (Screen.Width - Me.Width)

merci énormement
Les yeux montrent la force de l'âme
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Salut,

Tu récupère la taille de l'écran en paramètre et tu compare avec les valeurs left, right, top etc...

Bon courage

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
Private





Sub

Form1_Move(


ByVal

sender


As





Object

,


ByVal

e


As

System.EventArgs)


Handles





Me

.Move



If





Me

.Top < 0


Then





Me

.Top = 0



If





Me

.Left < 0


Then





Me

.Left = 0



If





Me

.Top > Screen.PrimaryScreen.Bounds.Height -


Me

.Height


Then








Me

.Top = (Screen.PrimaryScreen.Bounds.Height -


Me

.Height)



End





If








If





Me

.Left > Screen.PrimaryScreen.Bounds.Width -


Me

.Width


Then








Me

.Left = Screen.PrimaryScreen.Bounds.Width -


Me

.Width



End





If








End





Sub













Bonjour chez vous !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour, gillardg

L'évènement move d'une form n'est pas déclenché par le déplacement de la form en se servant de la barre de titre)....
Il lui faut :
- soit utiliser un timer (lourd...)
- soit inhiber le déplacement dans le menu système de la form et gérer le déplacement autrement, s'il veut le permettre).0
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Parce que la barre de titre permet le déplacement et n'est pas la Form ...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
En d'autres termes : le menu système de la Form est inclus dans la barre de titre et comprend le déplacement. La barre de titre, elle, ne répond pas à un évènement Move de VB (et encore moins de la Form).
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
merci pour vos réponse
je fais quoi alors j'ai vraiment besoin de sa le plus vite possible

merci beaucoup pour vos réponse

Les yeux montrent la force de l'âme
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
jmfmarques  , je peux t'assurer que cela fonctionne en .net

Bonjour chez vous !
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Oups.....

Remplace dans Timer :
  '-* Si erreur Test, restitue ancienne position de la Frm
      If bBadPos Then
         Form1.Top = iOldTop
         Form1.Left = iOldLeft
         bBadPos = False
      End If

Par :
  '-* Si erreur Test, restitue ancienne position de la Frm
      If bBadPos Then
         Form1.Top = iOldTop
         Form1.Left = iOldLeft
         bBadPos = False
      Else
  '-*    Sauvegarde position initial de Frm
         iOldTop = Form1.Top
         iOldLeft = Form1.Left
      End If

Et supprime dans Form_Load :

  '-* Sauvegarde position initial de Frm
      iOldTop = Form1.Top
      iOldLeft = Form1.Left

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Lol...en relisant ta demande...elle est contradictoire....Tu dis que tu ne veux pas qu'elle sorte de l'écran et après tu veux qu'elle sorte finalement de l'écran...Tu veux quoi au final ??

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Attention, les propriétés Top et Left ne sont pas de type String !!

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
merci beaucoups explorateur
Les yeux montrent la force de l'âme
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
L'aveugle n'a pas d'yeux et donc rien à montrer, sinon que la force de son âme est souvent très supérieure, ami....(et il sait le faire, crois-moi... ouvre donc bien tes yeux... )