像VS.NET窗体设计器中选中一个控件propertygrid就改变,我现在想得到的是:propertygrid取的是我自己定义的属性,仅仅显示下面这2个属性怎么达到?
    public class lable1
    {
        private Label m_label;
        public lable1(Label obj)
        {
            m_label = obj;
        }
        
        public string text
        {
            get 
            {
                return this.m_label.Text;
            }
            set
            {
                this.m_label.Text = value;
            }
        }        public int top
        {
            get
            {
                return this.m_label.Top;
            }
            set
            {
                this.m_label.Top = value;
            }
        }
    }        public void SetSelectedObject(Object obj)  //选中控件
        {
            if (obj is Label)
            {
                propertyGrid.SelectedObject = new lable1((Label)obj);  //是这样写吗?
            }
        }如果控件多的话,而且都是自定义属性那又该怎么写?谢谢!

解决方案 »

  1.   

    在属性前面加[BrowsableAttribute(false)]http://www.microsoft.com/china/MSDN/library/archives/library/dndotnet/html/usingpropgrid.asp
      

  2.   

    控件多的话,每个控件都有个Tag属性,在Tag里写上要显示的类,在
    public void SetSelectedObject(Object obj)  //选中控件
            {
                if (obj is Label)
                {
                    propertyGrid.SelectedObject = new lable1((Label)obj);  //是这样写吗?
                }
            }改写为
    public void SetSelectedObject(Object obj)  //选中控件
            {
                if (obj is Label)
                {
                    propertyGrid.SelectedObject = obj.Tag;
                }
            }