有人有任何想法如何停止使用自定义用户控件时重置属性?

与问题类似:How can I avoid properties being reset at design-time in tightly bound user controls?

我已经尝试了链接问题中的解决方案,但是它们一直在重置。

下面的示例属性:注意,我尝试使用一个简单的属性,但是每次编译包含表单时,它们都会不断重置为false。

[DefaultValue(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Description("Appearance")]
[EditorBrowsable(EditorBrowsableState.Always)]
public bool ImportFilenameShown
{
    get { return txtImportFile.Visible; }
    set
    {
        txtImportFile.Visible = value;
        lblImportFile.Visible = value;
        btnImportMappings.Visible = value;
        btnImportFileBrowse.Visible = value;
    }
}


任何帮助都会很好。这真让我抓狂。

最佳答案

如果txtImportFile的父母之一被隐藏,txtImportFile.Visible将始终返回false。

因此,设计人员将序列化错误的值。

相反,您应该将值存储在单独的后备字段中

关于c# - 设计器在编译时会重置属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15952165/

10-13 06:45