请帮我看看这个递归查找错在哪里?

robig 2018-04-24 01:46:52
我的代码中自己生成了一堆的TextBox控件,每个控件有个自己的ID,我现在要找某个ID的控件,写了一个递归,但不知错在哪里?请指教。


TextBox getTextBox(Control parent, string ControlID)
{
foreach (Control ctl in parent.Controls) //遍历所有控件,查找TextBox
{
if (ctl.ToString().IndexOf("System.Web.UI.WebControls.TextBox") >= 0 && ((TextBox)ctl).ID == ControlID)
{
return (TextBox)ctl;
}
else if (ctl.Controls.Count > 0)
{
return getTextBox(ctl, ControlID); //递归访问所有的控件
}
else
{
return null;
}
}
return null;
}
...全文
411 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj_zwl 2018-04-24
  • 打赏
  • 举报
回复
我记得有个方法可以直接找吧: control.find
极客诗人 2018-04-24
  • 打赏
  • 举报
回复
15 改成continu;
  • 打赏
  • 举报
回复
除了删除13到16,判断可以改为
var tb = ctl as TextBox ;
if(tb !=null && tb.Id == ControlID){return tb;}
参数最好都是小驼峰命名法
xuzuning 2018-04-24
  • 打赏
  • 举报
回复
删去 13到16行

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧