编译时由设计器重置的属性

时间:2013-04-11 14:59:02

标签: c# winforms properties

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

与问题类似: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;
    }
}

任何帮助都会很好。这让我发疯了。

1 个答案:

答案 0 :(得分:1)

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

因此,设计师会序列化错误的值。

相反,您应该将值存储在单独的支持字段