Jas*_*n Z 1 .net user-controls winforms
我创建了一个这样的自定义用户控件(简单示例):
public class MyButton : Button
{
public MyButton()
{
BackColor = Color.Blue;
}
}
Run Code Online (Sandbox Code Playgroud)
编译后,它将显示在表单设计器工具箱中,并显示更新的属性.但是,如果我更改颜色,我已在表单上使用的控件保持其原始颜色.
有没有办法设计一个控件来传播它对设计师的改变?
问题是您在编辑类之前在表单上删除的按钮已经被表单的InitializeComponent()调用用不同的颜色初始化.换句话说,它们会覆盖您在构造函数中设置的默认颜色.您需要做的是声明属性的默认值,以便设计器不生成赋值.这应该是这样的:
using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
class MyButton : Button {
public MyButton() {
BackColor = Color.Blue;
}
[DefaultValue(typeof(Color), "Blue")]
public override Color BackColor {
get { return base.BackColor; }
set { base.BackColor = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1087 次 |
| 最近记录: |