public interface IOrderBy<T>
    {
        /// <summary>
        /// 每项菜单的ID
        /// </summary>
        string ID
        {
            get;
            set;
        }
}

解决方案 »

  1.   

    public interface IOrderBy<T>
        {
            string ID
            {
                get;
                set;
            }
        }
    public A:TreeView<T>
    {
            private IOrderBy<T> _ID;        public IOrderBy<T> ID
            {
                get { return _ID; }
                set { _ID= value; }
            }
    }
      

  2.   

    控件似乎不能是泛型的。本来泛型的控件也没什么用。如果是泛型的,一般都是在代码里面使用,new的时候还要实例化T。.NET设计器是从1.x过来的,设计之初就没有泛型,现在感觉也没什么必要加上。
      

  3.   

    如果控件里使用了一个泛型的类 难道就一定在控件类后加<T>么?
    那在InitializeComponent()
    private TreeViewOperate<StarLan.App.Forms.BaseFrame.GeneralMenuData> treeViewOperate1;
    this.treeViewOperate1 = new TreeViewOperate<StarLan.App.Forms.BaseFrame.GeneralMenuData>();
    this.Controls.Add(this.treeViewOperate1);
    在设计器里就会出错 就没有办法么?
      

  4.   

    新建一个类,继承自控件的那个类.
    比如你的控件类是
    GControl <T>
    那么新建一个类:
    StrControl:GControl <string>然后使用这个StrControl就能在窗体设计器里打开了.