C# 在一个自己命名的类中要用到FindControl()方法的用法。

C#在一个自己命名的类中要用到FindControl()方法。可是this.FindControl()查找的的当前窗体。如:Labellbl=(Label)this.Fi... C# 在一个自己命名的类中要用到FindControl()方法。可是this.FindControl()查找的的当前窗体。如:Label lbl = (Label)this.FindControl(Lab + i);这样写出错。应该怎么写才对?谢谢!最好写的详细些。 展开
 我来答
_神__仙_
2012-01-04 · TA获得超过1257个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:532万
展开全部
要看你的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
更多追问追答
追问
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;
}
美食娱乐与健康
2012-01-04
知道答主
回答量:15
采纳率:0%
帮助的人:6.8万
展开全部
与UI相关的方法,为什么要放到类里呢。你可以再窗体上FindControl后,作为类函数的参数传递进去。
追问
问题是我要好多地方用到。所以写个类比较简单啊。随时用随时调用!
追答
即使你想统一调用。你至少得给这个方法传递控件的名称吧。把这个参数改成Label是最好最规范的解决方案了吧。函数一般应该只负责逻辑处理等等,不应该用来处理页面控件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dl_会飞的青蛙
2012-01-04 · TA获得超过2456个赞
知道大有可为答主
回答量:3294
采纳率:0%
帮助的人:3391万
展开全部
Label lbl = (Label)this.FindControl("Lab" + i.ToString());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式