我定义了一个控件:MyControl,里面放了两个Label,分别是MyLabel1,MyLabel2,并设置了属性:
public Label Label1
{
 get { return this.MyLabel1; }
}当我把MyControl控件拖到Form上时,我为Label1设置背景色为RED,但一运行这个属性就变成了默认值,请教怎么解决?

解决方案 »

  1.   

    就是如何让.NET自动保存我在设计期作的修改
      

  2.   

    你在MyControl里把label的背景色设为red就可以了。
      

  3.   

    我的要求是在任意的Form上可以任意设置
      

  4.   

    可以了,你在自定义控件里公开label的backcolor属性
    public Color MyLabelColor
    {
    get
    {
    return this.label1.BackColor;
    }
    set
    {
    this.label1.BackColor = value;
    }
    }
    就可以了。
      

  5.   

    [System.ComponentModel.DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public System.Windows.Forms.Label Label1
    {
    get {return this.label1;}
    } [System.ComponentModel.DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public System.Windows.Forms.Label Label2
    {
    get {return this.label2;}
    }
      

  6.   

    panda2fw2(我爱Monkey) 的回复有些道理,我现在也是这样用的,但这种方法太笨,在实际应用中我的自定义控件里有10个Label,每个Label里边要发布的属性(包括自定义的)有10多个,这样会导致代码一大串,应用时眼睛都看花了,难找
      

  7.   

    LiJoe(有看贴的权利,没有回帖的义务)的方法我试过了,没什么反应
      

  8.   

    那到是啊,label多了就麻烦了,如果你每个lable都要可以设置,那就只能放这么多个属性出来,如果一个颜色的话,你可以在set里面给每个label的backcolor赋值。我也只能想到这个了,没有其他方法,找高手来解决吧,顺便学习一下。