OVH Cloud OVH Cloud

Positionner un contrôle dans une form

7 réponses
Avatar
Denis
Bonjour à tous
Je cherche le moyen de positionner mon UserControl au bas de ma form
automatiquement tout comme le fait un StatusBar!

Quelqu'un a une idée ou une référence?

Merci
Denis

7 réponses

Avatar
Llooping
Salut!

je ne suis pas expert en vb mais je pense qu'avec la hauteur de la form
(TaForm.height) et la hauteur de ton controle (TonControl.top) tu peux faire
des (petits) miracles!!



"Denis" a écrit :

Bonjour à tous
Je cherche le moyen de positionner mon UserControl au bas de ma form
automatiquement tout comme le fait un StatusBar!

Quelqu'un a une idée ou une référence?

Merci
Denis


Avatar
Hervé
Salut Denis,
Teste :

Private Sub Form_Resize()
With MonControle
.Top = Me.ScaleHeight - .Height
End With
End Sub

Hervé.

"Denis" a écrit dans le message news:

Bonjour à tous
Je cherche le moyen de positionner mon UserControl au bas de ma form
automatiquement tout comme le fait un StatusBar!

Quelqu'un a une idée ou une référence?

Merci
Denis


Avatar
Patrice Henrio
Pour les contrôles on a les propriétés Top, height, left et width qui
permettent de positionner là où l'on veut


"Llooping" a écrit dans le message de
news:
Salut!

je ne suis pas expert en vb mais je pense qu'avec la hauteur de la form
(TaForm.height) et la hauteur de ton controle (TonControl.top) tu peux
faire
des (petits) miracles!!



"Denis" a écrit :

Bonjour à tous
Je cherche le moyen de positionner mon UserControl au bas de ma form
automatiquement tout comme le fait un StatusBar!

Quelqu'un a une idée ou une référence?

Merci
Denis




Avatar
Denis
Merci de vos réponses mais je crois que je me suis mal exprimer!
Si j'agrandi ou rappetisse ma form, je veux que mon UserControl se
positionne automatique au bas de la form sans avoir à utiliser Form_Resize
comme le fait le contrôle StatusBar. Peut-être un événement de mon
UserControl, mais lequel et comment.

Merci

Denis

"Denis" wrote:

Bonjour à tous
Je cherche le moyen de positionner mon UserControl au bas de ma form
automatiquement tout comme le fait un StatusBar!

Quelqu'un a une idée ou une référence?

Merci
Denis


Avatar
Thierry Bertrand
Bonjour,

Comme t'as dit hervé, la seule solution est d'utiliser l'évènement resize de
la forme. Cet évènement sera déclenché dès que tu modifiera la taille de la
forme parent.
Si tu ajoute la largeur, ton contrôle se s'agrandira également.

Private Sub Form_Resize()
if me.WindowState = vb_Minimized then exit sub
With MonControle
.Left=0
.Top = Me.ScaleHeight - .Height
.Width = me.ScaleWidth
End With

Maintenant tu peux aussi faire un ocx, ce qui te permettra de l'avaoir
positionné en mode design également....
Avatar
Thierry Bertrand
Pour compléter, tu pourrais faire un user control qui se positionne en bas
de ta feuille au design:


Private Sub UserControl_Resize()
Label1.Width = UserControl.ScaleWidth
End Sub

Private Sub UserControl_Show()
Dim Obj As Object
UserControl.Width = UserControl.Parent.ScaleWidth
For Each Obj In UserControl.ParentControls
If InStr(Obj.Name, UserControl.Name) > 0 Then
Obj.Top = UserControl.Parent.ScaleHeight - Obj.Height
Obj.Left = 0
Exit Sub
End If
Next
End Sub


mais sur les évènements resize de la feuille parent, il faudrait déclencher
un évènement dans ton controle, et ça ....
Avatar
Thierry Bertrand
Pour encore compléter:

Private Sub UserControl_Paint()
Positionne
End Sub

Private Sub UserControl_Resize()
Label1.Width = UserControl.ScaleWidth
End Sub

Private Sub UserControl_Show()
Positionne
End Sub

Private Sub Positionne()
Dim Obj As Object
UserControl.Width = UserControl.Parent.ScaleWidth
For Each Obj In UserControl.ParentControls
If InStr(Obj.Name, UserControl.Name) > 0 Then
Obj.Top = UserControl.Parent.ScaleHeight - Obj.Height
Obj.Left = 0
Exit Sub
End If
Next
End Sub


mais ca ne marche pas complèrtement