Esempio n. 1
0
        /// <summary>
        ///  Retrieves the next parent control that would be usable
        ///  by the tab order UI.  We only want parents that are
        ///  sited by the designer host.
        /// </summary>
        private Control GetSitedParent(Control child)
        {
            Control parent = child.Parent;

            while (parent != null)
            {
                ISite      site      = parent.Site;
                IContainer container = null;

                if (site != null)
                {
                    container = site.Container;
                }

                container = DesignerUtils.CheckForNestedContainer(container); // ...necessary to support SplitterPanel components

                if (site != null && container == host)
                {
                    break;
                }

                parent = parent.Parent;
            }

            return(parent);
        }
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            string strA = (string)value;

            if (((strA == null) || (strA.Length == 0)) || (string.Compare(strA, System.Design.SR.GetString("DataGridNoneString"), true, CultureInfo.CurrentCulture) == 0))
            {
                return(DesignBinding.Null);
            }
            int index = strA.IndexOf("-");

            if (index == -1)
            {
                throw new ArgumentException(System.Design.SR.GetString("DesignBindingBadParseString", new object[] { strA }));
            }
            string a          = strA.Substring(0, index - 1).Trim();
            string dataMember = strA.Substring(index + 1).Trim();

            if ((context == null) || (context.Container == null))
            {
                throw new ArgumentException(System.Design.SR.GetString("DesignBindingContextRequiredWhenParsing", new object[] { strA }));
            }
            IComponent dataSource = DesignerUtils.CheckForNestedContainer(context.Container).Components[a];

            if (dataSource != null)
            {
                return(new DesignBinding(dataSource, dataMember));
            }
            if (!string.Equals(a, "(List)", StringComparison.OrdinalIgnoreCase))
            {
                throw new ArgumentException(System.Design.SR.GetString("DesignBindingComponentNotFound", new object[] { a }));
            }
            return(null);
        }
        private Control GetSitedParent(Control child)
        {
            Control parent = child.Parent;

            while (parent != null)
            {
                ISite      site      = parent.Site;
                IContainer container = null;
                if (site != null)
                {
                    container = site.Container;
                }
                container = DesignerUtils.CheckForNestedContainer(container);
                if ((site != null) && (container == this.host))
                {
                    return(parent);
                }
                parent = parent.Parent;
            }
            return(parent);
        }