为什么控件的有些属性在代码中可用,但是在设计界面的属性窗口中就没有呢?
--------------------------------------------
控件的有些属性,只能在代码中设置,但是在可视化设计时,不能在属性列表中设置,比如
datagridview 的AutoGenerateColumns属性就是这样,我开始以为自已的 vs2008 有问题,后来上网一查,发现好多网友也发过帖,也和我一样,
我现在可以确认,这是正常的。但是我还是想了解一下,为什么会这样,应该是原因而言的。首先,我不是说这是 vs 的bug,我知道这是正常的。我想问,为什么有些属性不能在可视化窗口中设定,
只能用代码设定,有什么原则没有。

解决方案 »

  1.   

    因为属性上有很多Attribute,它们告诉设计器在哪里要显示或隐藏属性。
      

  2.   

    [DefaultValue(true), EditorBrowsable(EditorBrowsableState.Advanced), Browsable(false)]
    public bool AutoGenerateColumns
      

  3.   

    [BrowsableAttribute(false)]
    public bool AutoGenerateColumns { get; set; }
    BrowsableAttribute 类 
     指定一个属性 (Property) 或事件是否应显示在“属性”窗口中。
      

  4.   


    我还是不太明白,您说的代码,我如何能查到?
    您给的代码是 .net 系统自已的代码吗?可以自已修改吗?
      

  5.   

    这个是已经编译好的.net类库里的代码,你可以继承它再修改。用一个软件 Reflector, 可以反编译查看。