2012-10-30 1 views
0

J'ai une erreur affichée concernant l'événement onload. L'erreur est uniquement affichée lorsque j'ajoute le contrôle à un formulaire et essayez d'afficher le formulaire en mode Création. En regardant le contrôle lui-même en mode design, ça va. L'erreur estQu'est-ce qui est exécuté lorsque vous ajoutez un contrôle à un formulaire en mode Création?

Object reference not set to an instance of an object.

Stack Trace

at BHCS.ECC.PhysDoc.UI.UserControls.TemplateBaseControl.SetControlVisibility() in C:\TFS10\ECC\Dev\BHCS\ECC\BHCS.ECC\BHCS.ECC\PhysDoc\UI\TemplateBaseControl.cs:line 98 
at BHCS.ECC.PhysDoc.UI.UserControls.TemplateBaseControl.ucTemplateBase_Load(Object sender, EventArgs e) in C:\TFS10\ECC\Dev\BHCS\ECC\BHCS.ECC\BHCS.ECC\PhysDoc\UI\TemplateBaseControl.cs:line 476 
at System.EventHandler.Invoke(Object sender, EventArgs e) 
at System.Windows.Forms.UserControl.OnLoad(EventArgs e) 
at DevExpress.XtraEditors.XtraUserControl.OnLoad(EventArgs e) 
at BHCS.ECC.PhysDoc.UI.UserControls.TemplateBaseControl.OnLoad(EventArgs e) in C:\TFS10\ECC\Dev\BHCS\ECC\BHCS.ECC\BHCS.ECC\PhysDoc\UI\TemplateBaseControl.cs:line 1029 
at System.Windows.Forms.UserControl.OnCreateControl() 
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 
at System.Windows.Forms.Control.CreateControl() 
at System.Windows.Forms.Control.ControlCollection.Add(Control value) 
at System.Windows.Forms.Form.ControlCollection.Add(Control value) 
at System.Windows.Forms.Design.ControlDesigner.DesignerControlCollection.Add(Control c) 

Avoir des objets au moment de la conception ne fait pas de sens. Pourquoi le code est-il exécuté dans mon formulaire? Qu'est-ce qui n'est pas autorisé dans le contrôle qui provoque l'erreur dans la vue de conception de formulaire?

Répondre

1

L'erreur est renvoyée ici:

BHCS.ECC.PhysDoc.UI.UserControls.TemplateBaseControl.SetControlVisibility() in C:\TFS10\ECC\Dev\BHCS\ECC\BHCS.ECC\BHCS.ECC\PhysDoc\UI\TemplateBaseControl.cs:line 98 

Vous devez regarder cette ligne pour déterminer la raison pour laquelle vous obtenez Object reference not set to an instance of an object.. La raison pour laquelle vous obtenez cette erreur lors de la conception lorsque vous essayez d'afficher le concepteur de formulaire est que VS doit exécuter votre contrôle personnalisé pour l'afficher. S'il y a une erreur dans le code de votre contrôle personnalisé, VS ne peut rien afficher et signale donc l'erreur.

+0

+1 Il est bon de savoir qu'il exécute du code personnalisé. Je suppose que la partie qui me déroute est comment il est possible d'exécuter du code au moment du design ..? Je veux dire, il n'y a pas d'objets donc bien sûr tout mon enregistrement et tout va se casser. Il semble donc que, par défaut, nous ne pouvons pas ajouter beaucoup de logique à l'intérieur des événements 'Control.Load'. –

+0

@ P.Brian.Mackey J'ai aussi dû me battre avec ça. Vous pouvez tester 'DesignMode', mais j'ai eu beaucoup de problèmes avec ça. Dans certains cas, j'ai ajouté une fonction au contrôle pour activer le comportement d'exécution seule. –

Questions connexes