begin process at 2012 02 14 03:11:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Probleme de Setfocus avec un bouton ANNULER


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de Setfocus avec un bouton ANNULER

mardi 23 mai 2006 à 14:29:19 | Probleme de Setfocus avec un bouton ANNULER

jiojioforever

Salut j'ai un petit probleme avec un setfocus et un bouton annuler

en gros mon code ressemble à ça

Private Sub Text_TotalAllu_LostFocus()
  If ((Val(Text_TotalAllu) < 10) Or (Val(Text_TotalAllu) > 20) Or (Text_TotalAllu = "")) Then
     MsgBox ("Une erreur s'est produite au niveau de la saisie du nombre d'allumettes")
     Text_TotalAllu = ""
      Text_TotalAllu.SetFocus
   End If 
End Sub

Si mon champt nest mal rempli alors on le remet vide et on positionne l'utilisateur jusqu'à temps que ça soit bon...mais le probleme est que si l'utilisateur veut partir de l'application en cliquant sur le bouton annuler il ne peut pas ! il doit remplir le champ d'abord...
comment je peux faire pour éviter cela ?
merci d'avance


mardi 23 mai 2006 à 16:28:41 | Re : Probleme de Setfocus avec un bouton ANNULER

JB76000

Si tu as un bouton "annuler", je suppose que tu as aussi un bouton "valider" ou "ok". Je te propose de faire ton test au moment ou tu valides. De cette manière, tu ne fais pas une boucle avec le focus. De plus, ça te permet de regrouper l'ensemble de tes contrôles de "présence texte" et ainsi compresser ton code.


Utilises un groupe de textbox (textbox1(0), textbox1(1),...,textbox1(5))

met ça dans ton bouton valider:

'initialisation de la variable
erreur=-1

'boucle de contrôle de l'état de tes textbox
for n=5 to 0 step -1
if textbox1(n).text="" then erreur=n
next n

'définition du message d'erreur si présence d'erreur
select case erreur
case 0
message="du nombre d'allumettes"
case 1
message="du nom du joueur
...
end select

'en cas d'erreur
if erreur >-1 then
      w=msgbox("Erreur sur la saisie " & message) 'msgbox
      textbox1(erreur).setfocus'positionnement sur la textbox en défaut
      exit sub'quitter le sub en cours
end if

'Puis tu mets ton code correspondant au boutton valider


Jer
mardi 23 mai 2006 à 16:31:23 | Re : Probleme de Setfocus avec un bouton ANNULER

crenaud76

Il existe un evenement spécial pour ce genre de test. Il s'agit de l'EVT Validate(). Il se déclenche pour un controle lorsque celui-ci perd le focus au profit d'un autre controle dont la propriété CausesValidation est à True (qui est la valeur apr défaut). Donc, il te suffit de faire un truc du genre Private Sub Text_TotalAllu_Validate(Cancel As Boolean) If ((Val(Text_TotalAllu.Text) < 10) Or (Val(Text_TotalAllu.Text) > 20) Or (Text_TotalAllu.Text = "")) Then MsgBox ("Une erreur s'est produite au niveau de la saisie du nombre d'allumettes") Text_TotalAllu.Text = "" Cancel = True End If End Sub ... et de mettre la propriété CausesValidation à False pour ton bouton ANNULER.
mardi 23 mai 2006 à 18:43:16 | Re : Probleme de Setfocus avec un bouton ANNULER

jiojioforever

Je ne vois pas à quoi te sert le CausesValidation dans le bouton ANNULER tu ne veux pas plutôt mettre Cancel = False ? Private Sub bt_annuler_Click() Cancel = False Saisie1Joueur.Hide End Sub merci
mardi 23 mai 2006 à 19:24:14 | Re : Probleme de Setfocus avec un bouton ANNULER

crenaud76

Non !!! Le CausesValidation à False pour le bouton Annuler (c'est une propriété du bouton, pas a mettre dans un EVt quelconque), pemet d'indiquer que si un controle perd le focus en faveur de ton bouton Annuler, l'EVT Validate() du controle perdant le focus ne sera pas traiter ! Et dans l'EVT Validate() du textbox (evt qui sera donc déclencher si cette textbox perd le focus en faveur d'un autre controle que le bouton Annuler -dont le causesvalidation est à False-), si les condition ne sont aps rempli pour que la valeur de al textbox soit OK, tu mets le parametre Cancel à True, pour que en sortie de l'EVT, Widnows redonne le focus à la textbox CR
mardi 23 mai 2006 à 20:23:32 | Re : Probleme de Setfocus avec un bouton ANNULER

jiojioforever

désolé mais ça ne fonctionne pas :s... enfin si mais il teste quand je suis dans le champ ou je dois mettre le nombre d'allumer quand je place mon curseur dedant. Par contre si je veux faire annuler il refuse. toujours mon message d'erreurs sur le nombre d'allumettes :s il faudrait faire appel de cette fonction sans le bouton valider_click() non ?
mardi 23 mai 2006 à 20:41:16 | Re : Probleme de Setfocus avec un bouton ANNULER

jiojioforever

En fait j'ai 2 champs à remplir avant de valider -le nom du joueur -le nombre d'allumettes
mardi 23 mai 2006 à 22:32:09 | Re : Probleme de Setfocus avec un bouton ANNULER

crenaud76

Si tu as bien mis la propriété CausesValidation du bouton ANNULER à False, l'EVT Validate() de ta textbox ne doit pas se déclencher si tu cliques sur le bouton ANNULER ! Par contre si tu as un bouton VALIDER, lui, il doit avoir sa propriété CausesValidation à True et si tu cliques dessus, la, l'EVT Validate de la textbox doit se déclencher, et donc vérifier la bonne saisie dans la textbox. Si la saisie est érronée, un coup de MsgBox et un Cancel à True et ca le fait ! Impossible que cela ne fonctionne pas ! Ou alors je m'exprime mal ? Ou alors tu es fatigué ? alcoolisé ? les trois en même temps ? CR
mardi 23 mai 2006 à 23:19:21 | Re : Probleme de Setfocus avec un bouton ANNULER

jiojioforever

C'est pas pour être désagréable mais non... Il me bloque toujours sur mon champ pas rempli et impossible d'appuyer sur le bouton annuler le message me revient toujours ! voilà mon code : BOUTON ANNULER : Private Sub bt_annuler_Click() CausesValidation = False Saisie1Joueur.Hide End Sub BOUTON VALIDER : Private Sub bt_valider_Click() CausesValidation = True // je passe tout les codes inutiles End Sub TEXTBOX1 (saisir le nom du joueur) Private Sub Text_Joueur1_Validate(Cancel As Boolean) If Text_Joueur1 = "" Then MsgBox ("Vous avez oublié d'insérer votre nom") Text_Joueur1 = "" Cancel = True End If End Sub TEXTBOX2 (saisir le nombre d'allumettes) Private Sub Text_TotalAllu_Validate(Cancel As Boolean) If ((Val(Text_TotalAllu.Text) < 10) Or (Val(Text_TotalAllu.Text) > 20) Or (Text_TotalAllu.Text = "")) Then MsgBox ("Une erreur s'est produite au niveau de la saisie du nombre d'allumettes") Text_TotalAllu.Text = "" Cancel = True End If End Sub Voilà en plus de ça j'ai remarqué que si je cliquais sur le bouton valider une premiere fois...je ne pouvais plus cliquer sur valider ou annuler ensuite (pourtant ils ne sont pas grisés) merci pour la patience lol
mardi 23 mai 2006 à 23:50:10 | Re : Probleme de Setfocus avec un bouton ANNULER

crenaud76

Tu n'as pas à modifier la valeur de "CausesValidation" dans les evt Click de tes boutons !!!!!!!! En mode design, sur ta fenetre, tu sélectionnes ton bouton ANNULER et dans la liste de ses propriétés (en bas à gauche par défaut sous VS6), tu passes la valeur de CausesValidation = True. Et point barre ! Pour les deux textbox, c'est OK ! Le code est bon. Pour le code des boutons, dans le ANNULER, tu laisses juste le machin.Hide, et pour le bouton VALIDER, tu laisses le code que tu n'as pas recopié dans ton message ci-dessus ... et ca suffit

1 2

Cette discussion est classée dans : bouton, text, probleme, setfocus, totalallu


Répondre à ce message

Sujets en rapport avec ce message

Common dialog textbox combo et bouton [ par iclic ] Salute,Voila mon probleme sur ma form j'ai 1Common dialog 1textbox 1combo et 1bouton . Le chemin d'acces choisi par l'utilisateur va dans la text box petit probleme de SQL [ par medhmd83 ] bonjour,j'ai un probleme avec ma requete:Private Sub DataCombo1_Click(Area As Integer)txtid_type_service.Text = ("SELECT id_type_service FROM type_ser Re : probleme code bouton suivant et precedent [ par pjcleder ] PATThéoriquement, Ta base est déjà ouverte avant l'utilisation des boutons et tu n'as qu'à faire :if not rs.eof then rs.movenextpour le bouton suivant Probleme delphi [ par rsca_en_force ] Voila j'ai deux petit probleme tout 'abord j'aimerai savoir comment on fait que our dans le edit1.text on sait aller a la ligne 2) j'aimerai savori co Probleme delphi [ par rsca_en_force ] Voila j'ai deux petit probleme tout 'abord j'aimerai savoir comment on fait que our dans le edit1.text on sait aller a la ligne 2) j'aimerai savori co Besoin d'aide, sortir d'un For avec un seul bouton [ par Aramil ] J'explique, j'ai un seul bouton sur mon formulaire.Quand je clique dessus, il lance un For... Next, et il se renomme(btn_1.text) en "Stop".Je veux que Petite validation VB [ par acer2000 ] Bonjour,Dans une form j'ai un champs text et un bouton command. Je voudrais que mon bouton command devienne Enabled que lorsque j'ai tapé 4 chiffres d ADO et ACCES "Pobleme avec de Soit disan doublon" [ par developvbdebut ] Bonjour tout le mondeVoilà mon problème, lors du secon enregistrement vb me sort qu'il ne ajouter les données car il risque d'avoir des doublons, pour Probleme de recordset ??? [ par JeffC1977 ] Salut... Je suis avec VB? ADO et ACCESS J'aimerais savoir pourquoi j'ai ce bug.... J'ai 11 textebox pour afficher l'info de ma BD. Quand je fais un pb avec input type="file" [ par loyousse ] Salut tout le monde!! je vous écris car j'ai un probleme, j'ai créé dans un formulaire une zone destinée à recevoir un fichier avec un bouton parcouri


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,040 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales