OVH Cloud OVH Cloud

Donner le focus

5 réponses
Avatar
Patrice Henrio
Je dispose d'un frame sur une forme, existe-t-il un évènement qui donne le
focus à la frame.
Je m'explique lorsque l'utilisateur clique à un endroit de le forme, je
souhaite que le frame devienne visible (ça je sais faire, visible=true) mais
en plus je veux que le focus soit sur le frame pour gérer l'évènement
lostfocus de ce même frame qui se traduira par visible=false.

5 réponses

Avatar
Jacques93
Bonjour,
Patrice Henrio wrote:
Je dispose d'un frame sur une forme, existe-t-il un évènement qui donne le
focus à la frame.
Je m'explique lorsque l'utilisateur clique à un endroit de le forme, je
souhaite que le frame devienne visible (ça je sais faire, visible=true) mais
en plus je veux que le focus soit sur le frame pour gérer l'évènement
lostfocus de ce même frame qui se traduira par visibleúlse.




A ma connaissance, un contrôle 'Frame' ne dispose pas d'événement
GetFocus, pas plus que LostFocus. De plus un contrôle (quelqu'il soit)
dont la propriété Visible = False ne reçoit aucun événement.


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
With Me.Frame1
If X >= .Left And X <= .Left + .Width And _
Y >= .Top And Y <= .Top + .Height Then
Me.Frame1.Visible = True
Else
Me.Frame1.Visible = False
End If
End With
End Sub

c'est sans Click, mais ta question me semble bizarre ;-)
--
Cordialement,

Jacques.
Avatar
Patrice Henrio
En fait l'apparition du frame dépend d'un évènement (clic sur une forme), et
je veux que ce frame redevienne invisible lorsqu'il n'a plus le focus.
Mais effectivement, j'ai vu dans la MSDN que le frame n'avait pas
d'évènement gotfocus et lostfocus.
Je vais peut être gérer cela avec une autre forme au lieu d'un frame.

"Jacques93" a écrit dans le message de
news:
Bonjour,
Patrice Henrio wrote:
Je dispose d'un frame sur une forme, existe-t-il un évènement qui donne
le focus à la frame.
Je m'explique lorsque l'utilisateur clique à un endroit de le forme, je
souhaite que le frame devienne visible (ça je sais faire, visible=true)
mais en plus je veux que le focus soit sur le frame pour gérer
l'évènement lostfocus de ce même frame qui se traduira par visibleúlse.



A ma connaissance, un contrôle 'Frame' ne dispose pas d'événement
GetFocus, pas plus que LostFocus. De plus un contrôle (quelqu'il soit)
dont la propriété Visible = False ne reçoit aucun événement.


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
With Me.Frame1
If X >= .Left And X <= .Left + .Width And _
Y >= .Top And Y <= .Top + .Height Then
Me.Frame1.Visible = True
Else
Me.Frame1.Visible = False
End If
End With
End Sub

c'est sans Click, mais ta question me semble bizarre ;-)
--
Cordialement,

Jacques.


Avatar
LE TROLL
Chalut,

Pour lui donner le focus:

Form2.Show vbNormal, Me ' fait passer au 1er plan toujours

Me.Show

Load FormX ' reste devant, premier plan, toujours visible
dans l'applie
FormX.Show , Me

Me.SetFocus
------------------

"Patrice Henrio" a écrit dans
le message de news:
Je dispose d'un frame sur une forme, existe-t-il un
évènement qui donne le focus à la frame.
Je m'explique lorsque l'utilisateur clique à un endroit de
le forme, je souhaite que le frame devienne visible (ça je
sais faire, visible=true) mais en plus je veux que le
focus soit sur le frame pour gérer l'évènement lostfocus
de ce même frame qui se traduira par visibleúlse.



Avatar
Guy DETIENNE
Salut ;O)

Un contrôle Frame n'est rien autre qu'un container. Et en effet, il n'a pas
d'événeement GotFocus et LostFocus.
Tu peux cependant utiliser le contrôle PictureBox (plus gourmand) qui lui
aussi est un container et peut fonctionner de façon similaire à une Frame.
Celui-ci a bien les événements GotFocus et LostFocus.

Guy


"Patrice Henrio" a écrit dans le message de
news:%
En fait l'apparition du frame dépend d'un évènement (clic sur une forme),


et
je veux que ce frame redevienne invisible lorsqu'il n'a plus le focus.
Mais effectivement, j'ai vu dans la MSDN que le frame n'avait pas
d'évènement gotfocus et lostfocus.
Je vais peut être gérer cela avec une autre forme au lieu d'un frame.

"Jacques93" a écrit dans le message de
news:
> Bonjour,
> Patrice Henrio wrote:
>> Je dispose d'un frame sur une forme, existe-t-il un évènement qui donne
>> le focus à la frame.
>> Je m'explique lorsque l'utilisateur clique à un endroit de le forme, je
>> souhaite que le frame devienne visible (ça je sais faire, visible=true)
>> mais en plus je veux que le focus soit sur le frame pour gérer
>> l'évènement lostfocus de ce même frame qui se traduira par


visibleúlse.
>
> A ma connaissance, un contrôle 'Frame' ne dispose pas d'événement
> GetFocus, pas plus que LostFocus. De plus un contrôle (quelqu'il soit)
> dont la propriété Visible = False ne reçoit aucun événement.
>
>
> Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
> Single, Y As Single)
> With Me.Frame1
> If X >= .Left And X <= .Left + .Width And _
> Y >= .Top And Y <= .Top + .Height Then
> Me.Frame1.Visible = True
> Else
> Me.Frame1.Visible = False
> End If
> End With
> End Sub
>
> c'est sans Click, mais ta question me semble bizarre ;-)
> --
> Cordialement,
>
> Jacques.




Avatar
Patrice Henrio
En fait j'ai carrément utilisé une forme en style modale

Tiré de la MSDN
modale
Désigne une fenêtre ou une boîte de dialogue qui exige une action de la part
de l'utilisateur avant qu'une autre feuille ou une autre boîte de dialogue
puisse devenir active.



C'est exactement ce que je cherchais.




"Guy DETIENNE" a écrit dans le message de news:

Salut ;O)

Un contrôle Frame n'est rien autre qu'un container. Et en effet, il n'a
pas
d'événeement GotFocus et LostFocus.
Tu peux cependant utiliser le contrôle PictureBox (plus gourmand) qui lui
aussi est un container et peut fonctionner de façon similaire à une Frame.
Celui-ci a bien les événements GotFocus et LostFocus.

Guy


"Patrice Henrio" a écrit dans le message de
news:%
En fait l'apparition du frame dépend d'un évènement (clic sur une forme),


et
je veux que ce frame redevienne invisible lorsqu'il n'a plus le focus.
Mais effectivement, j'ai vu dans la MSDN que le frame n'avait pas
d'évènement gotfocus et lostfocus.
Je vais peut être gérer cela avec une autre forme au lieu d'un frame.

"Jacques93" a écrit dans le message
de
news:
> Bonjour,
> Patrice Henrio wrote:
>> Je dispose d'un frame sur une forme, existe-t-il un évènement qui
>> donne
>> le focus à la frame.
>> Je m'explique lorsque l'utilisateur clique à un endroit de le forme,
>> je
>> souhaite que le frame devienne visible (ça je sais faire,
>> visible=true)
>> mais en plus je veux que le focus soit sur le frame pour gérer
>> l'évènement lostfocus de ce même frame qui se traduira par


visibleúlse.
>
> A ma connaissance, un contrôle 'Frame' ne dispose pas d'événement
> GetFocus, pas plus que LostFocus. De plus un contrôle (quelqu'il soit)
> dont la propriété Visible = False ne reçoit aucun événement.
>
>
> Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As
> Single, Y As Single)
> With Me.Frame1
> If X >= .Left And X <= .Left + .Width And _
> Y >= .Top And Y <= .Top + .Height Then
> Me.Frame1.Visible = True
> Else
> Me.Frame1.Visible = False
> End If
> End With
> End Sub
>
> c'est sans Click, mais ta question me semble bizarre ;-)
> --
> Cordialement,
>
> Jacques.