7 votes

Erreur "Failed to create component 'ControlName' " lorsqu'on fait glisser un contrôle utilisateur Windows forms vers un formulaire

J'ai un contrôle utilisateur Windows forms dans mon projet. Il a fonctionné sur un formulaire sans aucun problème mais soudainement, je ne peux plus l'utiliser sur aucun autre formulaire. Si j'essaie de le faire glisser depuis la boîte à outils vers un nouveau formulaire, j'obtiens le message d'erreur suivant

"Impossible de créer le contrôle 'controlName'. Le message d'erreur est le suivant : system.ArgumentException : the specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider or not valid."

Mais lorsque je lance le projet, il se compile sans aucune erreur.

De plus, lorsque je veux ouvrir le designer du formulaire qui contient déjà ce Usercontrol et qui fonctionne bien, le designer ne se charge pas et je vois les messages d'erreur suivants

" Pour éviter une éventuelle perte de données avant de charger le concepteur, les erreurs suivantes doivent être résolues :

La connexion nommée spécifiée est soit introuvable dans la configuration, soit non destinée à être utilisée avec le fournisseur EntityClient, soit non valide.

La variable 'MyControlName1' n'est pas déclarée ou n'a jamais été attribuée."

Je ne comprends pas ce qui se passe, mais le projet se construit et fonctionne toujours, mais sans aucun doute quelque chose ne va pas du tout.

9voto

RMuesi Points 176

Enveloppez les méthodes de chargement de votre contrôle utilisateur avec :

private void myUserControl_Load(object sender, EventArgs e)
{
    if (!this.DesignMode)
    {
        //....stuff
    }            
}

5voto

Webleeuw Points 3879

Il semble que votre contrôle essaie d'établir une connexion avec une base de données au moment de la conception, et que la base de données est introuvable (probablement parce que le concepteur essaie de chercher dans le répertoire bin de Visual Studio).

Le mieux est de ne pas connecter une base de données à un contrôle d'utilisateur au moment de la conception, mais de le faire dynamiquement au moment de l'exécution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X