Infragistics2.Win.UltraWinTabControl.v8.1
Reposition Method
See Also  Example
Infragistics.Win.UltraWinTabControl Namespace > UltraTab Class : Reposition Method

relativeTab
The tab to position this tab next to.
relativePosition
Position relative to the relativeTab that this tab will be repositioned.
Repositions this tab before or after another tab. Passing null as the relativeTab will position the tab as the first tab if relativePosition is After or as the last tab if relativePosition is Before.

Syntax

Visual Basic (Declaration) 
Public Sub Reposition( _
   ByVal relativeTab As UltraTab, _
   ByVal relativePosition As RelativePosition _
) 
C# 
public void Reposition( 
   UltraTab relativeTab,
   RelativePosition relativePosition
)

Parameters

relativeTab
The tab to position this tab next to.
relativePosition
Position relative to the relativeTab that this tab will be repositioned.

Remarks

Raises the and events.

Example

The following sample code illustrates how to sort tabs through the VisibleTabs collection.

Visual BasicCopy Code
    Imports Infragistics.Win
    Imports Infragistics.Win.UltraWinTabs
    Imports Infragistics.Win.UltraWinTabControl

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        ' The VisibleTabs collection exposes a Sort method
        ' with 3 overloads.

        ' Calling the method without any parameters will do
        ' an ascending case-sensitive sort based on the
        ' tabs' Text values.
        Me.ultraTabControl1.VisibleTabs.Sort()

        ' The second overload allows you to specify whether
        ' to sort ascending or descending based on the
        ' tabs' (case-sensitive) Text values
        Me.ultraTabControl1.VisibleTabs.Sort(SortDirection.Descending)

        ' The third overload allows you to specify a custom
        ' comparer. In this case, a comparer that will do a
        ' case-insensitive sort.
        Me.ultraTabControl1.VisibleTabs.Sort(New MyTabComparer(SortDirection.Descending))

        ' Calling the Sort method affects tab placement in the
        ' 'VisibleTabs' collection and changes each tab's 'VisibleIndex'
        ' property but does not affect the tab's 'Index' property or
        ' its position in the 'Tabs' collection.

        ' Tab placement in the 'VisibleTabs' collection can
        ' also be changed by setting the tab's 'VisibleIndex'
        ' property or calling its 'Reposition' method
        Dim utab As UltraTab = Me.ultraTabControl1.Tabs(2)
        utab.VisibleIndex = 0
        utab.Reposition(Me.ultraTabControl1.Tabs(1), RelativePosition.Before)

        ' The 'VisibleTabs' collection also exposes properties and
        ' methods for filtering out non-selectable tabs, i.e. tabs
        ' whose 'Visible' or 'Enabled' property is set to false.
        utab = Me.ultraTabControl1.VisibleTabs.FirstSelectableTab
        utab = Me.ultraTabControl1.VisibleTabs.LastSelectableTab
        utab = Me.ultraTabControl1.VisibleTabs.GetNextSelectableTab(utab, True)
        utab = Me.ultraTabControl1.VisibleTabs.GetPreviousSelectableTab(utab, True)

        ' Note: the 2nd parameter to the method calls above specifies
        ' whether to wrap around when the last or first selectable tab
        ' is passed in.

    End Sub

    Private Class MyTabComparer
        Implements IComparer

        Private direction As SortDirection

        Public Sub New(ByVal direction As SortDirection)

            Me.direction = direction

        End Sub

        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare

            Dim tab1 As UltraTab = x
            Dim tab2 As UltraTab = y

            Dim string1 As String = tab1.Text
            Dim string2 As String = tab2.Text

            Dim ret As Integer

            If string1 Is Nothing Then
                ret = -1
            ElseIf string2 Is Nothing Then
                ret = 1
            Else
                ' Do a case-insensitive compare
                ret = String.Compare(string1, string2, True, System.Globalization.CultureInfo.CurrentCulture)
            End If

            ' If descending then flip the sign
            If Me.direction = SortDirection.Descending Then
                ret *= -1
            End If

            Return ret

        End Function

    End Class

C#Copy Code
       using System.Diagnostics;
       
using Infragistics.Win;
       
using Infragistics.Win.UltraWinTabs;
       
using Infragistics.Win.UltraWinTabControl;

       
private void button9_Click(object sender, System.EventArgs e)
       {
           
// The VisibleTabs collection exposes a Sort method
           
// with 3 overloads.

           
// Calling the method without any parameters will do
           
// an ascending case-sensitive sort based on the
           
// tabs' Text values.
           
this.ultraTabControl1.VisibleTabs.Sort();

           
// The second overload allows you to specify whether
           
// to sort ascending or descending based on the
           
// tabs' (case-sensitive) Text values
           
this.ultraTabControl1.VisibleTabs.Sort( SortDirection.Descending );

           
// The third overload allows you to specify a custom
           
// comparer. In this case, a comparer that will do a
           
// case-insensitive sort.
           
this.ultraTabControl1.VisibleTabs.Sort( new MyTabComparer(SortDirection.Descending) );

           
// Calling the Sort method affects tab placement in the
           
// 'VisibleTabs' collection and changes each tab's 'VisibleIndex'
           
// property but does not affect the tab's 'Index' property or
           
// its position in the 'Tabs' collection.

           
// Tab placement in the 'VisibleTabs' collection can
           
// also be changed by setting the tab's 'VisibleIndex'
           
// property or calling its 'Reposition' method
           
UltraTab tab = this.ultraTabControl1.Tabs[2];
           tab.VisibleIndex = 0;
           tab.Reposition(
this.ultraTabControl1.Tabs[1], RelativePosition.Before );

           
// The 'VisibleTabs' collection also exposes properties and
           
// methods for filtering out non-selectable tabs, i.e. tabs
           
// whose 'Visible' or 'Enabled' property is set to false.
           
tab = this.ultraTabControl1.VisibleTabs.FirstSelectableTab;
           tab =
this.ultraTabControl1.VisibleTabs.LastSelectableTab;
           tab =
this.ultraTabControl1.VisibleTabs.GetNextSelectableTab( tab, true );
           tab =
this.ultraTabControl1.VisibleTabs.GetPreviousSelectableTab( tab, true );
           
           
// Note: the 2nd parameter to the method calls above specifies
           
// whether to wrap around when the last or first selectable tab
           
// is passed in.
       }

       
private class MyTabComparer : IComparer
       {
           
private SortDirection direction;

           
internal MyTabComparer( SortDirection direction )
           {
               
this.direction = direction;
           }

           
int IComparer.Compare(object x, object y)
           {
               UltraTab tab1 = x
as UltraTab;
               UltraTab tab2 = y
as UltraTab;

               
string string1 = tab1.Text;
               
string string2 = tab2.Text;

               
int ret;

               
if ( string1 == null )
                   ret = -1;
               
else                
               
if ( string2 == null )
                   ret = 1;
               
else
               {
                   
// Do a case-insensitive compare
                   
ret    = string.Compare( string1, string2, true, System.Globalization.CultureInfo.CurrentCulture);
               }

               
// If descending then flip the sign
               
if ( this.direction == SortDirection.Descending )
                   ret *= -1;

               
return ret;
           }
       }

See Also