程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> WinForm完成按稱號遞歸查找控件的辦法

WinForm完成按稱號遞歸查找控件的辦法

編輯:C#入門知識

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#法式設計有所贊助!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved