【发布时间】:2014-01-17 03:51:20
【问题描述】:
我有一个自定义的DataGridView,比如说:
public MyGridView : DataGridView
{
public MyGridView()
{
BackgroundColor = Color.Red;
}
}
现在,当我在使用设计器的项目中使用此控件时,出于某种原因,我觉得还需要在 Designer.cs 文件中设置属性。
所以在设计器文件中,我会:
this.MyGridView1.BackgroundColor = System.Drawing.Color.FromArgb((byte)(int)255, (byte)(int)0, (byte)(int)0);
我遇到的问题是,它使我无法在 MyGridView 的构造函数中更改颜色,而不必遍历我用来控制和更改每个实例的所有表单,渲染我的自定义控件没用。
对于一些提供虚拟吸气剂的属性,这没问题,但大多数属性没有它。
如何防止设计者生成此代码?
【问题讨论】:
-
使用DefaultValue 属性装饰属性。
-
@NikolaMarkovinović 这些不是我创建的属性,这些是继承自
DataGridView的属性(例如BackgroundColor)。我应该在哪里添加属性? -
对我没有通读问题很有帮助。我认为没有可接受的解决方案。您可以像 this answer 处理继承的 ComboBox 那样隐藏原始属性。再次道歉。
-
@NikolaMarkovinović 没问题!至少你给了它一些关注:) 你链接的问题是一个可能的解决方法,但它只适用于
constable 值。有没有办法将默认值属性分配给非constable 值类型?
标签: c# .net winforms visual-studio-2010 windows-forms-designer