您的位置:首页 > 其它

window forms遍历窗体所有控件

2011-10-21 13:15 253 查看
/// <summary>

/// 只遍历控件的子控件,不遍历孙控件

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

/// </summary>

/// <typeparam name="T">要匹配的控件类型</typeparam>

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

/// <param name="controlsName">要匹配的控件名</param>

/// <returns></returns>

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

{

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 _control;

if (_control.HasChildren)

{

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

if (_control != null)

return _control;

}

}

return null;

}

/// <summary>

/// 遍历窗体所有控件

/// </summary>

/// <typeparam name="T">要匹配的控件类型</typeparam>

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

/// <param name="controlsName">要匹配的控件名</param>

/// <returns></returns>

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

{

Control _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;

}

使用方法:

Control _control;

_control = GetControl<TextBox>(customer, "txtValue");

if(_control!=null)

((TextBox) _control).Text = "text";

_control = GetControl<ComboBox>(customer, "ddl");

if (_control != null)

((ComboBox)_control).SelectedIndex = 0;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: