WinForm完成按稱號遞歸查找控件的辦法。本站提示廣大學習愛好者:(WinForm完成按稱號遞歸查找控件的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是WinForm完成按稱號遞歸查找控件的辦法正文
本文所述實例重要完成了WinForm完成按稱號遞歸查找控件的功效,在C#項目開辟中有必定的運用價值,分享給年夜家供年夜家參考自創。
症結代碼以下:
/// <summary> /// 向下遞歸查找控件 /// </summary> /// <param name="parentControl">查找控件的父容器控件</param> /// <param name="findCtrlName">查找控件稱號</param> /// <returns>若沒有查找到前往NULL</returns> public static Control DownRecursiveFindControl(this Control parentControl, string findCtrlName) { Control _findedControl = null; if (!string.IsNullOrEmpty(findCtrlName) && parentControl != null) { foreach (Control ctrl in parentControl.Controls) { if (ctrl.Name.Equals(findCtrlName)) { _findedControl = ctrl; break; } else { if (ctrl.Controls.Count > 0) _findedControl = DownRecursiveFindControl(ctrl, findCtrlName); } } } return _findedControl; } /// <summary> /// 將Control轉換某種控件類型 /// </summary> /// <typeparam name="T">控件類型</typeparam> /// <param name="control">Control</param> /// <param name="result">轉換成果</param> /// <returns>若勝利則前往控件;若掉敗則前往NULL</returns> public static T Cast<T>(this Control control, out bool result) where T : Control { result = false; T _castCtrl = null; if (control != null) { if (control is T) { try { _castCtrl = control as T; result = true; } catch (Exception ex) { Debug.WriteLine(string.Format("將Control轉換某種控件類型異常,緣由:{0}", ex.Message)); result = false; } } } return _castCtrl; }
測試代碼以下:
bool _sucess = false; CheckBox _finded = this.DownRecursiveFindControl("checkBox1").Cast<CheckBox>(out _sucess); if (_sucess) { MessageBox.Show(_finded.Name); } else { MessageBox.Show("Not Finded."); }
願望本文所述實例可以或許對年夜家的C#法式設計有所贊助!