J'ai créé un contrôle personnalisé avec une valeur maximale. Lors de l'ajout de if (DesignMode) Parent.Refresh(); il compile, mais dans le client, il se bloque avec l'erreur de message:Winform Custom Control Pourquoi "Référence d'objet n'est pas définie sur une instance d'un objet"?
Object Reference not set to an instance of an object
pile d'appel:
at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value)
at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkPropertyDescriptor.SetValue(Object component, Object value)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)
code source:
[Category("Main")]
[Description("Max Value")]
[DefaultValue(100)]
public int Max
{
get { return _max; }
set {
_max = value;
if (DesignMode)
{
Parent.Refresh();
}
}
}
Pourquoi actualisez-vous le parent? Je n'ai jamais vu ce comportement désiré ou nécessaire. –