Bonjour, j ai une form, avec dessus plusieurs champs reliés a une table
pour ca j ai , un datasource, un BindingSource et un TableAdapter
je voudrais mettre enable mon bouton Appliquer si un ou plusieurs champ on été modifies
comment faire ?
Bonjour, j ai une form, avec dessus plusieurs champs reliés a une table
pour ca j ai , un datasource, un BindingSource et un TableAdapter
je voudrais mettre enable mon bouton Appliquer si un ou plusieurs champ on été modifies
comment faire ?
Tu fais ça en faisant un truc tout bête : sur le textchanged des textbox, tu fais un enabled=true de ton bouton ...
Merci
j avais deja fait ca, mais s il y a 20 champs sur la form pour les 20 champs il faudra coder cet event
je ne trouves pas ca top
n y a t il pas un autre moyen pour detecter un changement sur l enregistrement en cours ?
Y'a peut-être un autre moyen, je ne le connais pas ..
.
Soit dit en passant, quel que soit le nombre de champs que tu as, tu peux gérer des évènements différents avec la même procédure, ce qui est somme toute très rapide ...
SI tu veux t'affranchir du codage de ces events, deux solutions :
- coder un event par type de controle et brancher tous les EventHandlers TextChanged, ValueChanged, CheckedChanged sur ces méthodes
ou
- ajouter un timer de rafraichissement d'interface qui ttes les X ms vérifie DataRowCourante.RowState est à 'Modified', 'Added' ou non. Si c le cas, dégriser le bouton. Cette solution peut etre dangereuse si tu ne penses pas a arreter ton timer a la fermeture de ta fenetre.
Si tu ne comprends pas trop, hésite pas![]()
Beh, oui,Envoyé par boulete
- tu ouvres le fichier form.designer.cs
- tu parcours la method private void InitializeComponent()
Chaque Structure de controle y est decrite
- tu ajoutes une ligne du type :
(exemple pour le combobox, mais tu trouves facilement les evenements liées aux autres controles)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.combobox.SelectedIndexChanged += new System.EventHandler(this.methodLiéeALEvenement);
- Tu edites le fichier form.cs et tu y colles la method :
ca se fait vite avec des copier/coller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void methodLiéeALEvenement { bouton.Enabled = true; }
D'un autre côté, je me demande s'il n'existe pas evenement sur l'ensemble des controles fils. Si tu trouves je veux bien la reponse.
Bonne journée
L.
Déjà comme ça va très très vite ...
Pour info, rien à voir, comment on fait les balises "citation" déjà ?
Merci
je viens d essayer
mais il n aime pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.teTitre.SelectedIndexChanged += new System.EventHandler(this.toto);
Code : Sélectionner tout - Visualiser dans une fenêtre à part Erreur 1 'DevExpress.XtraEditors.TextEdit' ne contient pas de définition pour 'SelectedIndexChanged' D:\Projets_Net\PCM_DVDtheque\Films\FFilmsDetail.Designer.cs 884 26 PCM_DVDTheque
L'evenement doit être plutot TextChanged, ou click, ou enter...
L'évènement "SelectedIndexChanged" est pour les comboboxs.
Pour les champs texte, il faut utiliser "textchanged"
Pour les radiobuttons, il faut utiliser "checkedchanged" etc ...
je fais ca
puis dans la form, ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.teTitre.TextChanged += new System.EventHandler(this.doToto);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private void doToto { btnAppiquer.Enabled = true ; }
mais la message d erreur que faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Erreur 1 Accesseur get ou set attendu D:\Projets_Net\PCM_DVDtheque\Films\FFilmsDetail.cs 133 11 PCM_DVDTheque
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager