Je souhaite créer un bouton (créé par moi en tant que contrôle utilisateur) à partir d'un autre fil que celui sur lequel je souhaite créer. La chose est que je sais comment modifier un objet de contrôle d'utilisateur d'un autre thread (en utilisant un délégué et .InvokeRequired) mais je ne sais pas comment je pourrais en créer un. Aucune suggestion ?Créer un contrôle utilisateur à partir d'un autre fil
2
A
Répondre
4
les opérations suivantes:
// From the other thread
userControl11.BeginInvoke(new Action(() =>
{
var button = new Button();
button.Text = "My new button";
userControl11.Controls.Add(button);
}));
Au sein du délégué (le () => { }
), vous pouvez faire tout ce que vous aimez avec le contrôle de l'utilisateur et la forme.
2
S'il vous plaît lire mon post précédent:
why isn't user-control class access not safe from another thread?
Threading Contrôle:
2
Utilisez la même manière que pour la modification d'un contrôle utilisateur. La fonction qui crée un contrôle doit être exécutée dans le thread d'interface utilisateur et appelée à l'aide de Invoke ou BeginInvoke. Transmettez toutes les informations requises pour la création du contrôle à l'aide des paramètres de délégué.
Questions connexes
- 1. comment invoquer une fonction écrite dans un contrôle utilisateur à partir d'un autre contrôle utilisateur?
- 2. Ajout usercontrol à un autre contrôle utilisateur
- 3. comment mettre à jour un contrôle utilisateur lorsque l'événement se produit dans un autre contrôle utilisateur?
- 4. Créer un utilisateur dans un autre Membership.ApplicationName
- 5. Surveillance du fil asp.net à partir d'une autre page
- 6. Débogage d'un contrôle utilisateur à partir d'ASP.NET
- 7. valeur passe d'un contrôle utilisateur à un autre usercontrol
- 8. Cacher/Montrer Winforms GUI C# à partir d'un autre fil
- 9. Comment créer ce contrôle utilisateur?
- 10. Mettre à jour ListView dans le fil principal à partir d'un autre fil
- 11. Comment activer une minuterie à partir d'un autre fil/classe
- 12. Comment utiliser un contrôle utilisateur asp.net dans un autre contrôle utilisateur?
- 13. Copie d'informations d'un contrôle utilisateur créé dynamiquement vers un autre contrôle utilisateur créé dynamiquement
- 14. ASP.NET: Problèmes de référencement d'un contrôle utilisateur dans un autre contrôle utilisateur?
- 15. Navigation dans un contrôle d'onglet WPF à partir d'un contrôle utilisateur?
- 16. Utilisation d'un contrôle utilisateur d'un autre projet
- 17. Comment créer un contrôle RichTextbox à partir de zéro?
- 18. Ajouter un contrôle utilisateur à un panneau
- 19. Comment créer un tableau à partir d'un autre tableau?
- 20. WPF - Suspension du fil d'interface utilisateur?
- 21. accorder un privilège à un autre utilisateur
- 22. À propos de l'inaccessibilité de la fonction javascript dans un contrôle utilisateur d'un autre contrôle utilisateur dans asp.net
- 23. Rechercher un contrôle utilisateur imbriqué
- 24. comment rejoindre fil de travailler avec un autre
- 25. Contrôle utilisateur qui remplace un autre contrôle sur la page aspx
- 26. Un problème avec le contrôle utilisateur créer asp.net
- 27. Comment créer un contrôle utilisateur dynamique dans Page
- 28. comment créer des régions invisibles sur un contrôle utilisateur
- 29. Rendre un contrôle utilisateur à une chaîne
- 30. Comment mettre à jour des zones de texte dans le fil principal à partir d'un autre fil?
dans mes Winforms j'ai inclus dans une fonction que j'appelle du fil .. dans lequel j'ai inclus le code suivant: panel6.BeginInvoke (nouveau Action (() => { controlAtentionare ca = new controlAtentionare (data, severitate, locatie, alarma, descriere, true); ca.Location = new Point (0, this.Controls.Count * ca.Height); this.panel6.Controls.Add (ca); MessageBox. Show ("LALA"); })); – Alex
L'alerte "lala" est affichée mais mon contrôle n'est pas ajouté – Alex
Genius! Solution géniale en place. Dans certains cas, je déteste créer des méthodes supplémentaires pour invoquer même si c'est un petit processus. Merci beaucoup, appris quelque chose de nouveau :). – C4u