Je génère un identifiant unique dans le cadre d'une classe Component que j'ai créée, puis j'utilise cette valeur comme Control.ID. Vous pouvez générer cette valeur unique comme vous le souhaitez, mais je la stocke dans une table de base de données. En fin de compte, ce n'est pas si important puisque lorsque la classe est instanciée, les valeurs sont initialisées et cohérentes tout au long de l'exécution de l'application.
La classe a une variable d'instance privée:
private Control _control;
Lorsque vous ajoutez le contrôle à la forme (et, plus précisément, l'espace réservé) Je fais quelque chose de similaire à ce sujet. Notez que c
fait référence à ma classe créée.
c.Control.ID = c.ComponentName + c.UniqueIdentifier;
phHere.Controls.Add(c.Control);
Puis, quand je dois faire référence au contrôle à un point plus tard, j'inverse essentiellement les étapes ci-dessus:
string component = c.ComponentName + c.UniqueIdentifier;
UserControl uc = (UserControl)ph.FindControl(component);
Espérons que cela aide. Si vous avez des questions, n'hésitez pas à demander. La racine du problème, cependant, est que le Control.ID doit être défini afin d'éviter l'erreur.
Merci
Avez-vous déjà fait des progrès avec ce McArthey? Je rencontre juste quelque chose de similaire moi-même :( – Mordy
Oui je l'ai fait Je suis désolé de ne pas avoir mis à jour cette réponse Je le ferai, mais en attendant, n'hésitez pas à me contacter si vous avez des questions. expliquer pourquoi il n'a jamais été répondu. – McArthey