コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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);
        }