J'essaie de modifier (ajouter ou supprimer) des éléments d'une combinaison de Combobox tandis que le formulaire est déjà en cours d'exécution, j'ai essayé la méthode Ajouter pourquoi il ne met pas la mise à jour / l'ajout de l'élément dans le ComboBox? p> Form1.designer.cs: strong> p> programme.cs: strud> p> edit strong> p> Comment obtenir une mise à jour périodique des articles par une fonction? p> p> ceci.combobox1.items.add ("Test2"); CODE> Mais Il n'ajoute que l'élément s'il exécute avant application.run (formulaire); code>.
4 Réponses :
Le code généré par les concepteurs ne doit être modifié que par les utilisateurs finaux dans des circonstances très spécifiques, et je ne crois pas que ce soit l'un d'entre eux. Ce type d'appel de méthode n'appartient pas non plus dans La raison pour laquelle votre méthode appelle ne fonctionne pas est que vous le placez dans Pour résoudre ce problème, lancez d'abord votre test programme.cs code>. P>
programme.cs code>. Lorsque votre programme.cs code> appelle application.run () code>, il commence une boucle de message sur le thread actuel avec le formulaire spécifié (dans ce cas, formulaire1 < / code>). Form1 Code> Bloque l'exécution dans Program.cs.cs code> jusqu'à ce qu'il soit fermé. Une fois que form1 code> est fermé, l'exécution continue dans programme.cs code>. En d'autres termes, ce n'est qu'après que vous avez fermé form1 code> que le test () code> est invoqué. P>
code> méthode à partir de concepteur code> à form1.cs code>. Ensuite, déplacez le Test () CODE> METHODE Call to Form1 code> S ( Formulaire public1 () Code> Dans Form1.cs code >). Sinon, créez un autre événement / méthode dans form1.cs code> (peut-être un charger () code> méthode) et exécutez test () p >
Merci ce que vous avez fourni fonctionne, mais comment faire si je ne veux pas mettre à jour les articles pendant la construction ou la charge, mais après un certain temps ou même périodiquement?
@ johan472 Comment vous ajoutez-les après quelque temps code> ou périodiquement code> dépend de l'intervalle de temps ou de l'événement déclencheur.
Désolé, je veux dire sur le temps basé sur le temps, j'ai trouvé le Solution qui me donne ce que je cherchais.
Au lieu d'utiliser SelectIndexchanged, vous devez utiliser l'événement de clic
dans cet exemple, j'utilise un bouton pour ajouter un élément Combobox eveyTime i Cliquez sur IT P>
Peut-être pas la meilleure approche, mais cela fonctionne fine p> et votre programme n'est pas bien fait, form1.cs.designer est Utilisez pour créer l'interface utilisateur (interface utilisateur) de votre programme, vous ne devez pas ajouter votre fonction ici. p> formes.cs.designer = UI, conception p> formes.cs = Fonctions < /p >p>programm.cs = défini quel formes.cs fonctionnera en premier (nouveau (form1)) p> p>
h2>
Je ne cherche pas à contrôler l'ajout d'objets manuellement, mais une fonction va faire
Je montre comment l'ajouter manuellement, mais une fonction peut l'ajouter si vous voulez
Vous pouvez également l'utiliser pour ajouter un élément avec une fonction
Je suis nouveau à C # alors j'apprécie vos explications, comme dans mon Commentaire Comment si je veux que la fonction soit mise à jour périodiquement et non à l'événement de construction ou de chargement?
Je suppose qu'il est impossible de charger des éléments de comboBox dynamiquement sans les ouvrir: - /
J'ai trouvé une caractéristique très utile qui est minuteries .
J'ai utilisé une minuterie initialisée à l'intérieur du constructeur de formulaire afin de mettre à jour périodiquement le ComboBox, dans l'exemple suivant, il a ajouté un élément qui est l'heure actuelle à la liste déroulante toutes les 2 secondes pendant 5 fois: p>