private void Handler_ControlAdded(object theSender, ControlEventArgs theArgs) { if (theArgs.Control is MultiPanePage) { var aPg = (MultiPanePage)theArgs.Control; // prevent the page from being moved and/or sized independently aPg.Location = new Point(0, 0); aPg.Size = ClientSize; aPg.Dock = DockStyle.Fill; if (SelectedPage == null) { SelectedPage = aPg; } else { aPg.Visible = false; } } else { //silently remove Controls.Remove(theArgs.Control); } }
private void Handler_SelectedPageChanged(object theSender, EventArgs theArgs) { mySelectedPage = DesignedControl.SelectedPage; // We do not call the property here, because the control // has already updated pages' visibility. We only must // sync the field with the control's current selection }
private object Transaction_UpdateSelectedPage(IDesignerHost theHost, object theParam) { MultiPaneControl aCtl = DesignedControl; MultiPanePage aPgTemp = mySelectedPage; int aCurIndex = aCtl.Controls.IndexOf(mySelectedPage); if (mySelectedPage == aCtl.SelectedPage) //we also need to update the SelectedPage property { MemberDescriptor aMember_SelectedPage = TypeDescriptor.GetProperties(aCtl)["SelectedPage"]; RaiseComponentChanging(aMember_SelectedPage); if (aCtl.Controls.Count > 1) { // begin update current page if (aCurIndex == aCtl.Controls.Count - 1) // NOTE: after SelectedPage has { aCtl.SelectedPage = (MultiPanePage)aCtl.Controls[aCurIndex - 1]; } // been updated, mySelectedPage else // has also changed { aCtl.SelectedPage = (MultiPanePage)aCtl.Controls[aCurIndex + 1]; } // end update current page } else { aCtl.SelectedPage = null; } RaiseComponentChanged(aMember_SelectedPage, null, null); } else { if (aCtl.Controls.Count > 1) { if (aCurIndex == aCtl.Controls.Count - 1) { DesignerSelectedPage = (MultiPanePage)aCtl.Controls[aCurIndex - 1]; } else { DesignerSelectedPage = (MultiPanePage)aCtl.Controls[aCurIndex + 1]; } } else { DesignerSelectedPage = null; } } return(null); }
private MultiPanePageDesigner GetSelectedPageDesigner() { MultiPanePage aSelPage = mySelectedPage; if (aSelPage == null) { return(null); } MultiPanePageDesigner aDesigner = null; var aSrv = (IDesignerHost)GetService(typeof(IDesignerHost)); if (aSrv != null) { aDesigner = (MultiPanePageDesigner)aSrv.GetDesigner(aSelPage); } return(aDesigner); }
protected void DrawBorder(Graphics theG) { MultiPanePage aCtl = DesignedControl; if (aCtl == null) { return; } else if (!aCtl.Visible) { return; } Rectangle aRct = aCtl.ClientRectangle; aRct.Width--; // decrement the with so that the bottom and aRct.Height--; // right lines could be visible theG.DrawRectangle(BorderPen, aRct); }
private void Handler_SelectionChanged(object sender, EventArgs e) { var aSrv = (ISelectionService)GetService(typeof(ISelectionService)); if (aSrv == null) { return; } ICollection aSel = aSrv.GetSelectedComponents(); MultiPaneControl aCtl = DesignedControl; foreach (object aIt in aSel) { MultiPanePage aPage = GetPageOfControl(aIt); if ((aPage != null) && (aPage.Parent == aCtl)) { DesignerSelectedPage = aPage; break; } } }
private void Handler_OK(object sender, EventArgs e) { myFutureSelectedItem = ((MultiPanePageItem)myCtlCmbItems.SelectedItem).Page; mySetSelectedPage = myCtlChkSetSelectedPage.Checked; }
public MultiPanePageItem(MultiPanePage thePg) { myPage = thePg; }