/// <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); }