好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

WinForm遍历窗体所有子控件的方法

本文实例讲述了WinForm遍历窗体所有子控件的方法。分享给大家供大家参考,具体如下:

?

/// <summary>

/// C# 只遍历控件子控件,不遍历孙控件

///当控件有子控件时,需要用递归的方法遍历,才能全部列出控件上的控件

/// </summary>

/// <typeparam name="T">控件类型</typeparam>

/// <param name="control">要遍历的控件</param>

/// <param name="controlsName">控件名</param>

/// <returns></returns>

public static T GetControl<T>(Control control, string controlsName) where T : Control

{

   if (control == null ) return null ;

   Control _control;

   for ( int i = 0; i < control.Controls.Count; i++)

   {

     _control = control.Controls[i];

     if (_control == null ) return null ;

     if (_control.Name == controlsName && _control is T)

       return (T)_control;

     if (_control.HasChildren)

     {

       _control = GetControl<T>(_control, controlsName);

       if (_control != null )

         return (T)_control;

     }

   }

   return null ;

}

/// <summary>

/// 遍历窗体所有子控件

/// </summary>

/// <typeparam name="T">控件类型</typeparam>

/// <param name="form">窗体名</param>

/// <param name="controlsName">控件名</param>

/// <returns></returns>

public static T GetControl<T>(Form form, string controlsName) where T : Control

{

   T _Control = null ;

   for ( int i = 0; i < form.Controls.Count; i++)

   {

     _Control = GetControl<T>(form.Controls[i], controlsName);

     if (_Control != null )

       return _Control;

   }

   return null ;

}

希望本文所述对大家C#程序设计有所帮助。

dy("nrwz");

查看更多关于WinForm遍历窗体所有子控件的方法的详细内容...

  阅读:48次