C# 在一个自己命名的类中要用到FindControl()方法的用法。
C#在一个自己命名的类中要用到FindControl()方法。可是this.FindControl()查找的的当前窗体。如:Labellbl=(Label)this.Fi...
C# 在一个自己命名的类中要用到FindControl()方法。可是this.FindControl()查找的的当前窗体。如:Label lbl = (Label)this.FindControl(Lab + i);这样写出错。应该怎么写才对?谢谢!最好写的详细些。
展开
展开全部
要看你的Lab是什么类型对象了
如果是string Lab
Label lbl = (Label)this.FindControl(Lab + i);
如果只是个字符串"Lab"
Label lbl = (Label)this.FindControl("Lab" + i);
如果是Label Lab
Label lbl = (Label)this.FindControl(Lab.Id + i); winform
或Label lbl = (Label)this.FindControl(Lab.Name + i); aspx
如果是string Lab
Label lbl = (Label)this.FindControl(Lab + i);
如果只是个字符串"Lab"
Label lbl = (Label)this.FindControl("Lab" + i);
如果是Label Lab
Label lbl = (Label)this.FindControl(Lab.Id + i); winform
或Label lbl = (Label)this.FindControl(Lab.Name + i); aspx
更多追问追答
追问
Label就是Label控件。就是aspx写的。Label lbl = (Label)this.FindControl(Lab.Name + i); 这样写也是不对的~this.FindControl方法是在当前窗体查找控件。可是着是一个类文件。没有Label控件。所以找不到。这个this,是不是应该怎么变一下呢,我想是这样,可以我不知道怎么变
追答
那么你的i是做什么的?findcontrol是容器通过id获取对象的方法,在通用类中获取需要把对应的容器对象传递到方法里
如:
public static Label GetMyLabel(Page MyPage, string LabelName)
{
return MyPage.FindControl(LabelName) as Label;
}
展开全部
与UI相关的方法,为什么要放到类里呢。你可以再窗体上FindControl后,作为类函数的参数传递进去。
追问
问题是我要好多地方用到。所以写个类比较简单啊。随时用随时调用!
追答
即使你想统一调用。你至少得给这个方法传递控件的名称吧。把这个参数改成Label是最好最规范的解决方案了吧。函数一般应该只负责逻辑处理等等,不应该用来处理页面控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Label lbl = (Label)this.FindControl("Lab" + i.ToString());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询