Comment interdire/autoriser l'écriture dans une TextBox?

Signaler
Messages postés
5
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
7 juin 2010
-
Messages postés
102
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
16 août 2012
-
Bonjour,

en tant que débutant je développe une petite interface pour automatiser des outils commerciaux et j'aimerais vos conseils pour les points suivants:

- Comment faire pour que mon programme interdise de mettre une mauvaise date dans une masked textbox (antérieure a la date du jour ou non valide genre 32/21/2100)?
- Comment interdire la modification du texte dans une textbox (je fais un choix dans une combobox qui se répete ensuite dans une textbox qu'on ne peut pas changer, si je choisi "autre" je peux entrer moi meme le texte dans cette meme TextBox)?
- Comment ne pas faire apparaitre de choix par defaut dans une combobox mais interdire un choix nul ou l'écriture manuelle dans celle-ci?

Tous vos conseils seront les bienvenus!!!

Loke

7 réponses

Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011

Salut,
pour interdire une date fausse dans un textbox
il n'y a pas à ma connaissance de méthode toute faite
ou de controle tout fait pour ça...
Tu dois toi même programmer pour obtenir ce résultat.
Pour interdire la modification du texte d'un textbox,
fouille un peu dans les propriétés du textbox,
il n'y en as pas beaucoup et elles sont toutes décrites,
il y en a une juste pour ce que tu veux que tu peux mettre
à true ou false ;)
Pour le combobox, met-le en DropDownList.

a+
Messages postés
4
Date d'inscription
dimanche 9 mai 2010
Statut
Membre
Dernière intervention
19 décembre 2010

Bonjour,

Tout ce que je vais te dire là marche sur VB6 sur les autres versions j'en sais rien, je n'ai programmé que sur VB6


-Bref, il y'a une fonction prédéfinie sur VB qui te donne la date d'aujourd'hui automatiquement c'est la fonction CStr(Date), tu peux l'affecter à ton textbox ou comparer avec à toi voir ce que tu veux faire dans ton programme ...


-Pour interdire la modification dans un textbox tu vas dans les propriétés de ce text et tu mets enabled=false ou bien dans ton code tu mets text1.enabled=false
Mais si j'ai bien compris si on choisis "autre" dans la combolist dans ce cas là on peut modifier, si c'est le cas tu testes sur le choix que tu vas faire dans ta combobox si tu connais l'emplacement de "autre" par exemple dans ta combox tu affectes à une var l'emplacement du choix de l'utilisateur, par exemple:


autre se trouve par exemple au 6ème emplacement dans ta combobox et ben tu fais
var=combo1.listindex// listindex nous permet de connaitre la position de l'élément sélectionné dans ta combobox

if var <>6 then // puis tu testes suivant les cas
text1.enabled=false// ici tu ne peux pas écrire dans textbox
.......
else
text1.enabled=true// ici tu peux écrire dans ton textbox
end if


-Pour ta combobox tu vas dans ses propriétés et dans Style tu choisis DropDownList


Amicalement
Messages postés
5
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
7 juin 2010

Nikel pour DropDownList, pour interdire l'écriture de la TextBox je pense que ce sera l'option ReadOnly ou meme Enable, et le bout de code sera tres bien aussi pour l'option Autre, reste a voir comment je peux la manipuler en code...merci a vous deux

Par contre pour ce qui est de la date je m'imaginais bien que ce serait du code mais c'est justement la que je ne sais pas comment faire.
J'ai deja trouve la fonction qui me donne la date du jour mais ce que je veux interdire c'est que la date de livraison soit non valide...
J'imagine un "si" avec un messagebox qui dit que la date est mauvaise si on sort du controle MaskedBox, mais je ne sais pas comment vérifier la double condition:
- date de livraison > date du jour
- date de livraison valide (et pas 31 fevrier 2050)

Loke
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011

Salut,
quelques infos sur l'utilisation des dates
en vb.net,
date du jour :
DateAndTime.Today
créer une date pour comparer avec une autre :
Dim mydate As Date
mydate = new date(2010,6,7) ''par exemple
ensuite tu pourras comparer la
date du jour avec celle reçue
ou avec une autre que tu aura crée
il faudra penser aussi à vérifier
que le mois ne dépasse pas 12
comme le jour qui ne doit pas dépasser
31 ou selon le mois,
pour février, vérifier
si l'année est bissextile :
Date.IsLeapYear("2010")
renvoie false car 2010 n'est pas
sinon ça renverrai true
Voilà a+
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011

Ps : tu n'est pas obligé de mettre des guillemet dans
Date.IsLeapYear("2010")... salut
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
9
Bonjour,

EN VB6 il existe un contrôle calendrier (ou DTPicker, je ne sais plus exactement) qui te permet de sélectionner une date sans avoir à la saisir. Tu es déjà délesté de la validité de ta date au sens calendaire du terme.

Te reste plus qu'à tester si elle est inférieure ou non à la date du jour.

Calade
Messages postés
102
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
16 août 2012

Bonjour,

En ce qui concerne la permission de saisi quand la valeur de la combo est "autre", je pense qu'il faut faire un test sur le contenu de celle-ci (après l'évènement combobox.textchange)
Exemple :

if combobox1.text ="autre" then
textbox1.readonly = false
else
textbox1.readonly = true
end if

@+
julien