public static SUIDotNetControl GetObjectFromName(SUIDotNetControl rootForm, string name) { string prefix = PREFIX_OF_DY_CONTROL + DELIMITER_OF_DY_CONTROL; string temp = ""; if (name.IndexOf(prefix) >= 0) { ArrayList indexList = new ArrayList(); temp = name; while (temp.IndexOf(prefix) >= 0) { indexList.Add(int.Parse(temp[prefix.Length].ToString())); temp = temp.Substring(prefix.Length + 2, temp.Length - prefix.Length - 2); } SUIDotNetControl myCtrl = rootForm.FindControl(temp); if (myCtrl == null) { return(null); } for (int i = 0; i < indexList.Count; i++) { myCtrl = new SUIDotNetControl(myCtrl.Children[(int)(indexList[indexList.Count - i - 1])]); } return(myCtrl); } else { return(rootForm.FindControl(name)); } }
public static string GetIDNameFromDotNetCtrl(SUIDotNetControl ctrl) { string name = ""; name = ctrl.ID; if (name.Length <= 0) { SUIDotNetControl myCtrl = ctrl; int index = 0; IList <SUIWindow> ancestors = TrackWinAncestors(ctrl); while (myCtrl.ID.Length <= 0 || index >= ancestors.Count) { name += PREFIX_OF_DY_CONTROL; name += DELIMITER_OF_DY_CONTROL; for (int i = 0; myCtrl.Parent != null && i <= myCtrl.Parent.Children.Count; i++) { if (myCtrl.Parent.Children[i].WindowHandle.Equals(myCtrl.WindowHandle)) { name += i; name += DELIMITER_OF_DY_CONTROL; break; } } if (myCtrl.Parent != null) { myCtrl = new SUIDotNetControl(myCtrl.Parent); if (myCtrl.ID.Length > 0) { name += myCtrl.ID; break; } } else { break; } index++; } } return(name); }