如何为表单控件创建模板函数?
此语句将更改表单对象的位置。
lblMessage.Location = new Point(0,0);
我想编写一个可以定位任何表单对象的通用模板函数 。
我想出了这个,但它无效:
public void ChangePosition(T form_object) { form_object.Location = new Point(0,0); }
我称之为:
ChangePosition(lblMessage);
错误:’T’不包含’Location’的定义,也没有扩展方法’Location’接受类型’T’的第一个参数(你是否缺少using指令或汇编引用?)
我是否需要在模板function上提及某种界面? 如何在generics类型上调用扩展方法?
您可以做的是添加where T : Control
到函数定义的位置。 Control
是定义Point Location
的层次结构中的最高点。
public void ChangePosition(T form_object) where T : Control { form_object.Location = new Point(0,0); }
您不需要通用方法,您可以这样做:
public void ChangePosition(Control form_object) { form_object.Location = new Point(0,0); }
表单的所有控件的基类是具有Location
属性的Control
。
- 将url从utf-8编码重新编码为iso-8859-1编码
- 使用iTextSharp 5.3.3和USB令牌签署PDF
- .NET读取.lnk文件的二进制内容
- 除了“www”之外的任何字符串的正则表达式? (子域)
- 在转换日期时,方法’ToString’没有重载需要1个参数
- nhibernate 3.3一对多映射代码更新子代而不是插入
- 无法将类型为“Windows.UI.Xaml.Controls.ItemsControl”的对象强制转换为“Windows.UI.Xaml.Controls.Image”
- MVC和JQuery:检索表单数据的最佳实践
- 使用C#打开Word文档(.doc)会因文件阻止设置而导致COMException