在.net智能设备程序开发中Control 没有Name属性,下面是一个能够获得控件名称的方法
/// <summary>
/// 获得控件的名称
/// </summary>
/// <param name="control">控件</param>
/// <returns>控件名称</returns>
private static string GetControlName(System.Windows.Forms.Control control)
{
Control ptrol=control.Parent;
//当控件为顶级窗体时
if(ptrol == null)
{
Type t1= control.GetType();
return t1.FullName.Substring(t1.FullName.LastIndexOf(".")+1);
}
//获得控件名称ss
Type t=control.Parent.GetType();
System.Reflection.FieldInfo[] fi=t.GetFields(System.Reflection.BindingFlags.NonPublic|System.Reflection.BindingFlags.Instance|System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.IgnoreCase);
foreach(System.Reflection.FieldInfo f in fi)
{
string bb=f.Name;
object obj=f.GetValue(control.Parent);
if(obj!=null)
if(f.GetValue(control.Parent).Equals(control))
return f.Name;
}
return null;
}