WinForm自定义函数FindControl实现按名称查找控件
本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值。分享给大家供大家参考。
关键代码如下:
///<summary> ///按名称查找控件 ///</summary> ///<paramname="parentControl">查找控件的父容器控件</param> ///<paramname="findCtrlName">查找控件名称</param> ///<returns>若没有查找到返回NULL</returns> publicstaticControlFindControl(thisControlparentControl,stringfindCtrlName) { Control_findedControl=null; if(!string.IsNullOrEmpty(findCtrlName)&&parentControl!=null) { foreach(ControlctrlinparentControl.Controls) { if(ctrl.Name.Equals(findCtrlName)) { _findedControl=ctrl; break; } } } return_findedControl; } ///<summary> ///将Control转换某种控件类型 ///</summary> ///<typeparamname="T">控件类型</typeparam> ///<paramname="control">Control</param> ///<paramname="result">转换结果</param> ///<returns>若成功则返回控件;若失败则返回NULL</returns> publicstaticTCast<T>(thisControlcontrol,outboolresult)whereT:Control { result=false; T_castCtrl=null; if(control!=null) { if(controlisT) { try { _castCtrl=controlasT; result=true; } catch(Exceptionex) { Debug.WriteLine(string.Format("将Control转换某种控件类型异常,原因:{0}",ex.Message)); result=false; } } } return_castCtrl; } }
测试代码如下:
bool_sucess=false; CheckBox_finded=panel1.FindControl("checkBox1").Cast<CheckBox>(out_sucess); if(_sucess) { MessageBox.Show(_finded.Name); } else { MessageBox.Show("NotFinded."); }
希望本文实例对大家C#学习能有所帮助!