ARCed.UI.DockPane.SetContentIndex C# (CSharp) Method

SetContentIndex() public method

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

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

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

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

            this.RefreshChanges();
        }

Usage Example

Example #1
0
        public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex)
        {
            if (dockStyle == DockStyle.Fill)
            {
                IDockContent activeContent = this.ActiveContent;
                for (int i = this.Contents.Count - 1; i >= 0; i--)
                {
                    IDockContent c = this.Contents[i];
                    if (c.DockHandler.DockState == this.DockState)
                    {
                        c.DockHandler.Pane = pane;
                        if (contentIndex != -1)
                            pane.SetContentIndex(c, contentIndex);
                    }
                }
                pane.ActiveContent = activeContent;
            }
            else
            {
                if (dockStyle == DockStyle.Left)
                    this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Left, 0.5);
                else if (dockStyle == DockStyle.Right)
                    this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Right, 0.5);
                else if (dockStyle == DockStyle.Top)
                    this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Top, 0.5);
                else if (dockStyle == DockStyle.Bottom)
                    this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Bottom, 0.5);

                this.DockState = pane.DockState;
            }
        }
All Usage Examples Of ARCed.UI.DockPane::SetContentIndex