2013-04-30 83 views
0
public static T newitem<T>(Form Control, int Left, int Top, string Text = "", bool Visible = true) where T : new() 
    { 
     T a = new T(); 
     a.Left = Left; 
     a.Top = Top; 
     a.Text = Text; 
     a.Visible = Visible; 
     Control.Controls.Add(a); 
     return a; 
    } 

我想写一个函数,将窗体控件添加到我的窗体。当我尝试访问a.xxx时,出现错误。 错误:'T'不包含'Left'的定义,并且没有找到接受'T'类型的第一个参数的扩展方法'Left'。 我该如何解决这个问题?在窗体窗体控件上使用模板

回答

1

添加一个附加约束,其中T : Control因为您只能将控件添加到表单。这限制了T的类型为Control,这确保了Left属性可用(它的控制权为defined

相关问题