WinForm自界說函數FindControl完成按稱號查找控件。本站提示廣大學習愛好者:(WinForm自界說函數FindControl完成按稱號查找控件)文章只能為提供參考,不一定能成為您想要的結果。以下是WinForm自界說函數FindControl完成按稱號查找控件正文
本文所述實例完成WinForm自界說函數FindControl完成按稱號查找控件的功效,在C#法式開辟中有必定的適用價值。分享給年夜家供年夜家參考。
症結代碼以下:
/// <summary>
/// 按稱號查找控件
/// </summary>
/// <param name="parentControl">查找控件的父容器控件</param>
/// <param name="findCtrlName">查找控件稱號</param>
/// <returns>若沒有查找到前往NULL</returns>
public static Control FindControl(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;
}
}
}
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 = panel1.FindControl("checkBox1").Cast<CheckBox>(out _sucess);
if (_sucess)
{
MessageBox.Show(_finded.Name);
}
else
{
MessageBox.Show("Not Finded.");
}
願望本文實例對年夜家C#進修能有所贊助!