WeifenLuo.WinFormsUI.Docking.DockPane.SetContentIndex C# (CSharp) 메소드

SetContentIndex() 공개 메소드

public SetContentIndex ( IDockContent content, int index ) : void
content IDockContent
index int
리턴 void
        public void SetContentIndex(IDockContent content, int index)
        {
            int oldIndex = Contents.IndexOf(content);
            if (oldIndex == -1)
                throw (new ArgumentException(Strings.DockPane_SetContentIndex_InvalidContent));

            if (index < 0 || index > Contents.Count - 1)
                if (index != -1)
                    throw (new ArgumentOutOfRangeException(Strings.DockPane_SetContentIndex_InvalidIndex));

            if (oldIndex == index)
                return;
            if (oldIndex == Contents.Count - 1 && index == -1)
                return;

            Contents.Remove(content);
            if (index == -1)
                Contents.Add(content);
            else if (oldIndex < index)
                Contents.AddAt(content, index - 1);
            else
                Contents.AddAt(content, index);

            RefreshChanges();
        }

Usage Example

예제 #1
0
        public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex)
        {
            if (dockStyle == DockStyle.Fill)
            {
                bool samePane = (Pane == pane);
                if (!samePane)
                {
                    Pane = pane;
                }

                if (contentIndex == -1 || !samePane)
                {
                    pane.SetContentIndex(Content, contentIndex);
                }
                else
                {
                    DockContentCollection contents = pane.Contents;
                    int oldIndex = contents.IndexOf(Content);
                    int newIndex = contentIndex;
                    if (oldIndex < newIndex)
                    {
                        newIndex += 1;
                        if (newIndex > contents.Count - 1)
                        {
                            newIndex = -1;
                        }
                    }
                    pane.SetContentIndex(Content, newIndex);
                }
            }
            else
            {
                DockPane paneFrom = DockPanel.DockPaneFactory.CreateDockPane(Content, pane.DockState, true);
                INestedPanesContainer container = pane.NestedPanesContainer;
                switch (dockStyle)
                {
                case DockStyle.Left:
                    paneFrom.DockTo(container, pane, DockAlignment.Left, 0.5);
                    break;

                case DockStyle.Right:
                    paneFrom.DockTo(container, pane, DockAlignment.Right, 0.5);
                    break;

                case DockStyle.Top:
                    paneFrom.DockTo(container, pane, DockAlignment.Top, 0.5);
                    break;

                case DockStyle.Bottom:
                    paneFrom.DockTo(container, pane, DockAlignment.Bottom, 0.5);
                    break;
                }

                paneFrom.DockState = pane.DockState;
            }
        }
All Usage Examples Of WeifenLuo.WinFormsUI.Docking.DockPane::SetContentIndex