Propriétés SetFocus ???

olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008 - 9 janv. 2005 à 11:29
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008 - 21 janv. 2005 à 15:22
Bonjour,
je souhaiterai pouvoir positionner le focus là ou je le souhaite au chargement de mes pages, mais voila je n'y arrive pas.

J'utilise dans le form load la propriété "object.SetFocus" mais ca me donne une erreur :
"Argument ou appel de la procédure incorect"

exemple de code que j'utilise :

Private Sub Form_Load()
nom_theme.SetFocus
End sub

avec nom_theme qui est une TextBox

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 11:50
En effet, dans l'événement Load, la feuille est en cours de chargement,
et les contrôles ne peuvent pas prendre le focus. Place ton code dans
l'événement Show ou Activate de ta feuille

DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 janv. 2005 à 11:53
Salut,
C'est normal, au moment du Load, ton textbox n'est justement pas encore chargé, il "n'existe" pas encore, donc tu ne peux pas utiliser ses méthodes.
Place ton setfocus plus tard dans le cycle de vie de ta form, dans Form_Activate par exemple, là ça marche...
Voilà, bonne prog et @+.
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 janv. 2005 à 11:55
Oups, un peu en retard...
(>Darksidious : l'évènement "show" n'existe pas je pense en VB6)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 12:09
Exact, je ne savais plus si c'était activate ou Show ;)

DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
addamsmercredi Messages postés 121 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 27 juillet 2006
9 janv. 2005 à 12:14
En fait, au chargement d'une feuille on ne peut pas utiliser la méthode SetFocus car ça donne automatiquement le focus à l'objet ayant la valeur TabIndex à 0.
Donc au lieu de faire nom_theme.SetFocus, met la veleur TabIndex de nom_theme à 0 dans ses propriétés et tu auras le résultat voulu.
0
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008
9 janv. 2005 à 13:51
Ok merci pour tous vos conseil j'essaye ca de suite et je vous donnerai mais résultats.
0
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008
9 janv. 2005 à 13:58
C'est bon ca marche nickel dans l'activate de la form. Merci !

Maintenant je voudrais savoir quel code mettre dans mon activate pour que le premier élement d'une listeBox soit sélectionné (pour qu'il soit en surbrillance bleu en quelque sorte).
Car pour cela le SetFocus ne marche pas.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 janv. 2005 à 14:12
Non, il faut utilise le listindex : List1.ListIndex = 1

DarK Sidious

[Administrateur et responsable VB/API du site ProgOtoP]
0
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008
9 janv. 2005 à 14:57
Ok merci c'est bon ca marche ausi !
Merci de toujours repondre ausi rapidement.
0
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008
19 janv. 2005 à 19:07
Alors j'ai encore un autre problème a ce sujet, comme je l'ai dit le "List1.ListIndex = 1" que vous m'avais indiqué marche très bien mais dans mon cas que dans 90% des cas.

90% des cas ???????? Et oui mais je ne sais pas pourquoi !

Enfait j'ai une page ou j'ai bo ettre ce code dans l'activate, rien a faire ca ne marche pas, VB ne me renvoie pas d'erreur il se contente de me harger la feuille sans rien selectionner dans ma liste box. Bon biensur elle n'est pas vide.

Alors voila si quelqu'un a une idée sur la chose, qu'est ce qui pourrait bloquer cette fonction dans ma feuille? ou quel bidule je fé mal ? ou autre?

Merci Olivier
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
19 janv. 2005 à 19:45
Salut,
Le premier élément d'une ListBox a l'index n° 0 (zéro).
Ca vient peut-être de là. Mais si tu veux qu'on t'aide mieus, un extrait du code serait préférable.
@+
0
olivier857 Messages postés 188 Date d'inscription mardi 21 décembre 2004 Statut Membre Dernière intervention 10 avril 2008
21 janv. 2005 à 15:22
C'est bon merci j'ai trouvé d'ou ca venait, du code :

supprimeX ouvrir : placé dans mon FormLoad et faisant appel à :

Public Sub supprimeX(feuille As Form)
'********* Supprime la X de la feuille voulue ***********
Dim hSysMenu As Long
Dim nCnt As Long


feuille.Show
hSysMenu = GetSystemMenu(feuille.hwnd, False)
If hSysMenu Then
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE
DrawMenuBar feuille.hwnd
End If
End If
End Sub

Voilà !

En tout cas merci de vous etre penché sur la question.
0
Rejoignez-nous