自定义控件属性代码没有自动生成?该怎么处理
自定义控件属性代码没有自动生成?
自定义控件的属性通过程序改变,属性框中已经显示属性值已经更改,但是却没有生成相应代码,只有当在设计窗体中拖动一下控件,或者删掉一些控件才会生成?请问这是怎么回事?
------解决方案--------------------
如果你在设计器或其它设计时组件中改变组的的属性值,你应当使用TypeDescriptor的反射来设置。比如
dim p as propertyDescriptor = TypeDescriptor.GetProperty( "Text ")
p.SetValue(control, "newvalue ")
这样可能可以。
也可以试着调用TypeDescriptor.Refresh(Component)来刷新组件。
主要原因是vs2005没有发现你的组件的属性已经更改。
------解决方案--------------------
1、建议:
public string GridColumnInfo
{
get { return columnInfo; }
set
{
this.columnInfo = value;
this.Invalidate();
}
}
2、你的Component DesignerAction写法好像有误:
http://www.cnblogs.com/mapserver/articles/360569.html
自定义控件的属性通过程序改变,属性框中已经显示属性值已经更改,但是却没有生成相应代码,只有当在设计窗体中拖动一下控件,或者删掉一些控件才会生成?请问这是怎么回事?
------解决方案--------------------
如果你在设计器或其它设计时组件中改变组的的属性值,你应当使用TypeDescriptor的反射来设置。比如
dim p as propertyDescriptor = TypeDescriptor.GetProperty( "Text ")
p.SetValue(control, "newvalue ")
这样可能可以。
也可以试着调用TypeDescriptor.Refresh(Component)来刷新组件。
主要原因是vs2005没有发现你的组件的属性已经更改。
------解决方案--------------------
1、建议:
public string GridColumnInfo
{
get { return columnInfo; }
set
{
this.columnInfo = value;
this.Invalidate();
}
}
2、你的Component DesignerAction写法好像有误:
http://www.cnblogs.com/mapserver/articles/360569.html