Hide

SftBox/OCX 5.0 - Combo Box Control

Display
Print

SftBoxColumn.MakeOptimal Method

Sets the column's optimal width.

Syntax

VB.NETobject.MakeOptimal(ByVal MaxScan As Integer)
VBobject.MakeOptimal(ByVal MaxScan As Long)
C#.NETvoid object.MakeOptimal(int MaxScan);
VC++HRESULT object->MakeOptimal(long MaxScan);
CHRESULT object->raw_MakeOptimal(long MaxScan);

object

A SftBoxColumn object.

MaxScan

The maximum number of items analyzed to determine the optimal column width for the column described by object. If 0 is specified, all items will be considered.

Comments

The MakeOptimal method sets the column's optimal width.

This method resizes the column described by object to the optimal width so that the column header and each cell can be completely displayed without being truncated or clipped. The Column.CalcOptimalWidth method can be used to calculate a column's optimal width without resizing the column. The column width can be changed using the Column.Width property.

The Columns.MakeOptimal method can be used to resize all columns.

By changing control properties, the optimal column width may change. Adding items, setting new cell graphics and changing cell text are a few of the actions that can affect the optimal column width. The column width may have to be set again to allow items to be completely visible. The control does not automatically adjust column widths.

If items are not visible because their parent items are collapsed, these are always excluded from the optimal width calculation.

The combo box control does not automatically adjust column widths.

The last (or only) column may be an "open-ended" column. The Columns.OpenEnded property is set to True. An open-ended column will always use the space remaining between the previous column and the right edge of the control window.

Calculating the optimal column width can be a time consuming operation, particularly if many items have been added to the control. MakeOptimal scans all items to determine the best column width, but can be limited to a specific number of items using the MaxScan argument. This reduces the time spent to calculate the optimal width, but may still leave some items clipped.

Examples

VB.NET

    AddBuiltinImage("Enabled Ascending Indicator", SftPictureImageConstants.sftImageSortAsc, 8, 8)
    AddBuiltinImage("Disabled Ascending Indicator", SftPictureImageConstants.sftImageSortAscDisabled, 8, 8)
    AddBuiltinImage("Enabled Descending Indicator", SftPictureImageConstants.sftImageSortDesc, 8, 8)
    AddBuiltinImage("Disabled Descending Indicator", SftPictureImageConstants.sftImageSortDescDisabled, 8, 8)


    AxSftBox1.RowHeaders.MakeOptimal(0) ' make the row headers optimal
    AxSftBox1.get_Column(0).MakeOptimal(0) ' make the first column optimal
    AxSftBox1.Items.RecalcHorizontalExtent(0) ' update horizontal scroll bar

    AxSftBox1.Items.Selection = 0

    CopyImageFromCurrentItem()
End Sub

Private Sub ExpandCollapseItem(ByVal ItemIndex As Long, ByVal Shift As Short)

VB6

        AddBuiltinImage "Enabled Ascending Indicator", sftImageSortAsc, 8, 8
        AddBuiltinImage "Disabled Ascending Indicator", sftImageSortAscDisabled, 8, 8
        AddBuiltinImage "Enabled Descending Indicator", sftImageSortDesc, 8, 8
        AddBuiltinImage "Disabled Descending Indicator", sftImageSortDescDisabled, 8, 8


        .RowHeaders.MakeOptimal 0 ' make the row headers optimal
        .Column(0).MakeOptimal 0 ' make the first column optimal
        .Items.RecalcHorizontalExtent 0 ' update horizontal scroll bar

        .Items.Selection = 0

        CopyImageFromCurrentItem

    End With

C#

    AddBuiltinImage("Enabled Ascending Indicator", SftPictureImageConstants.sftImageSortAsc, 8, 8);
    AddBuiltinImage("Disabled Ascending Indicator", SftPictureImageConstants.sftImageSortAscDisabled, 8, 8);
    AddBuiltinImage("Enabled Descending Indicator", SftPictureImageConstants.sftImageSortDesc, 8, 8);
    AddBuiltinImage("Disabled Descending Indicator", SftPictureImageConstants.sftImageSortDescDisabled, 8, 8);


    axSftBox1.RowHeaders.MakeOptimal(0); // make the row headers optimal
    axSftBox1.get_Column(0).MakeOptimal(0); // make the first column optimal
    axSftBox1.Items.RecalcHorizontalExtent(0); // update horizontal scroll bar

    axSftBox1.Items.Selection = 0;

    CopyImageFromCurrentItem();
}

private void ExpandCollapseItem(int ItemIndex, short Shift)

C++

    AddBuiltinImage(_T("Enabled Ascending Indicator"), sftImageSortAsc, 8, 8);
    AddBuiltinImage(_T("Disabled Ascending Indicator"), sftImageSortAscDisabled, 8, 8);
    AddBuiltinImage(_T("Enabled Descending Indicator"), sftImageSortDesc, 8, 8);
    AddBuiltinImage(_T("Disabled Descending Indicator"), sftImageSortDescDisabled, 8, 8);


    m_vBox->RowHeaders->MakeOptimal(0); // make the row headers optimal
    m_vBox->Column[0]->MakeOptimal(0); // make the first column optimal
    m_vBox->Items->RecalcHorizontalExtent(0); // update horizontal scroll bar

    m_vBox->Items->Selection = 0;

    CopyImageFromCurrentItem();

    return TRUE;  // return TRUE  unless you set the focus to a control
}

See Also SftBoxColumn Object | Object Hierarchy


Last Updated 08/13/2020 - (email)
© 2024 Softel vdm, Inc.