/// <summary> /// Attach the control to a specified document's control collection using a specified process. /// </summary> /// <param name="collection">The control collection to hold the control.</param> /// <param name="range">The location of the control.</param> /// <param name="width">The width of the control.</param> /// <param name="height">The height of the control.</param> /// <param name="shape">The control's inline shape object in the document</param> /// <returns>The component of the attached control.</returns> protected override Control Attach(ControlCollection collection, Word.Range range, float width, float height, out Word.InlineShape shape) { //adds a panel to document Panel control = new Panel(); ControlSite controlSite = collection.AddControl(control, range, width, height, ObjectId); shape = controlSite.InlineShape; //if there is no list item in the item collection then attach a new list box to document if (Items.Count == 0) { CreateDefaultTemplateItems(); RenderItems(control, _tempItems); } else { RenderItems(control, Items, false); } Items.TemplateItemsChanged += new EventHandler(Items_TemplateItemsChanged); return(control); }