cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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]
MoiOlivier
Messages postés172Date d'inscriptionmardi 15 juillet 2003StatutMembreDerniè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 @+.
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 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.
olivier857
Messages postés188Date d'inscriptionmardi 21 décembre 2004StatutMembreDernière intervention10 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.
olivier857
Messages postés188Date d'inscriptionmardi 21 décembre 2004StatutMembreDernière intervention10 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?
MoiOlivier
Messages postés172Date d'inscriptionmardi 15 juillet 2003StatutMembreDerniè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.
@+
olivier857
Messages postés188Date d'inscriptionmardi 21 décembre 2004StatutMembreDernière intervention10 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.