Formulaire Focus

Résolu
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
Bonjour à tous,

Dans un formulaire, j'ai un EditBox dans lequel j'écris beaucoup de chose...

Toutes les 30s j'ai un autre formulaire qui s'affiche à la MSN en bas à droite.

LE SOUCIS EST QUE JE PERDS LA MAIN SUR MON EDITBOX

Car le formulaire qui s'affiche en bas à droite récupère le focus et donc je ne peux

pas continuer ma saisie.

Quelqu'un aurait une idée?

Merci de votre aide

TBBUIM

6 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
c'est la faute au Form2.Show, qui chez VB fait plus que l'afficher....

l'API suffit (testé a l'instant avec un Timer)

SetWindowPos Form2.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE Or SWP_NOZORDER Or SWP_SHOWWINDOW

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
Est-ce TON formulaire, qui est en cause ?
si oui, on doit pouvoir ruser un brin, en lui interdisant le focus, etc

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Beh, en fait,afin d'afficher le formulaire en 1er plan, j'utilise l'API SetWindowPos

Afin de le mettre par-dessus tous les autres (normal, il faut pouvoir le voir)

Mais ça fait, qu'il récupère le focus.

Je vois pas trop comment ruser *-)

TBBUIM
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
SetWindowPos ?

veille a bien lui avoir dit SWP_NOACTIVATE

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
J'utilise cette sub dans le form_load de ma fenêtre d'avertissement
Public Sub RendreFormTjsVisible(MonForm As Object)
    SetWindowPos MonForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE Or SWP_NOZORDER
End Sub

Mais, il récupère toujours le focus

En fait, j'ai une api setTimer qui appelle ce formulaire toutes les 5 min
dans un TimerProc en faisant un classique NomForm.Show

Je ne vois absolument pas comment faire
Pour moi, la seule solution est de faire un prog qui ne gère, que, cela, mais j'ai besoin de lancer un form sur un double-clic
Comment puis-je lancer un form depuis un autre exe?
TBBUIM
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
9
Merci
J'ai donc remplacer le .show par ça et ça marche nikel chrome boxite
Fallait le savoir...
TBBUIM