我有一个非常烦人的问题需要解决几个星期了。我有一个WinForms C#项目,在其中开发了自定义控件(ListView + ToolStrip with ToolStripButtons)。该控件在解决方案内的不同窗体中使用,但在其他项目中使用。对于不同的窗体,我需要使某些按钮可见或隐藏,因此我已经向我的控件添加了相应的属性,例如
public Boolean DeleteButtonVisible
{
get
{
return tsbDelete.Visible;
}
set
{
tsbDelete.Visible = value;
}
}
一些按钮默认是可见的,而有些则被隐藏。在设计器中,当我编辑包含我的控件的表单时,我可以更改这些属性,控件上的按钮会按照应该的方式变为可见或隐藏。但是每次我在我的控件源文件中更改任何内容时,在所有表单中这些属性都会重置为默认值,无论我在设计器中设置了什么,我都必须手动恢复这些值。好吧,我正在使用源代码控制,所以这并不难,但是每次我在另一个文件中稍微更改一点东西就要在几十个文件上执行“撤消”是一场灾难。
我尝试使用[DesignerSerializationVisibility]属性来解决这个问题。如果我将其与值“Hidden”一起使用,它根本没有起到任何作用-值根本没有保存。如果默认情况下它们是可见的,“Content”会使按钮随机消失。“Visible”没有效果,因为这是默认值...
我不想在我的代码中为每个表单设置每个按钮的可见性-这不是应该采取的方式。
有人知道这方面的信息吗?
DefaultValue
属性指定属性的默认值? 或者您是在构造函数中设置这些值?设计器始终会遵守此属性提供的默认值。 - Jeff Mercado