Wraps a RangeTrackBar for use in the .
This wrapper implements IDynamicFilterRangeTrackBar, which allows DynamicFilterDialog to communicate with the and other track bar controls in a simple and consistent manner.

This wrapper uses the base-class implementations for most of the interface's properties and methods.

Inheritance: RangeTrackBar, IDynamicFilterRangeTrackBar
コード例 #1
0
    AddRangeTrackBarToGroupBox
    (
        NumericFilterParameters oNumericFilterParameters,
        String sTableName,
        GroupBox oGroupBox,
        StringBuilder oDynamicFilterConditions,
        Int32 iX,
        ref Int32 iY
    )
    {
        Debug.Assert(oNumericFilterParameters != null);
        Debug.Assert( !String.IsNullOrEmpty(sTableName) );
        Debug.Assert(oGroupBox != null);
        Debug.Assert(oDynamicFilterConditions != null);
        AssertValid();

        String sColumnName = oNumericFilterParameters.ColumnName;

        // Get the ranges to use for the range track bar.

        Decimal decAvailableMinimum, decAvailableMaximum,
            decSelectedMinimum, decSelectedMaximum;

        String sSelectedMinimumAddress, sSelectedMaximumAddress;

        GetRangeTrackBarRanges(oNumericFilterParameters, sTableName,
            out decAvailableMinimum, out decAvailableMaximum,
            out decSelectedMinimum, out decSelectedMaximum,
            out sSelectedMinimumAddress, out sSelectedMaximumAddress);

        // Create a range track bar appropriate for the filter parameters.

        IDynamicFilterRangeTrackBar oDynamicFilterRangeTrackBar;

        if (oNumericFilterParameters is DateTimeFilterParameters)
        {
            oDynamicFilterRangeTrackBar =
                new DynamicFilterDateTimeRangeTrackBar(
                    sTableName, sColumnName);
        }
        else
        {
            oDynamicFilterRangeTrackBar = new DynamicFilterRangeTrackBar(
                sTableName, sColumnName);
        }

        // Set the range track bar's ranges and custom properties.

        oDynamicFilterRangeTrackBar.SetAvailableRange(
            decAvailableMinimum, decAvailableMaximum);

        oDynamicFilterRangeTrackBar.SetSelectedRange(
            decSelectedMinimum, decSelectedMaximum);

        oDynamicFilterRangeTrackBar.SetCustomProperties(
            oNumericFilterParameters);

        // Position the range track bar.

        Debug.Assert(oDynamicFilterRangeTrackBar is Control);

        Control oControl = (Control)oDynamicFilterRangeTrackBar;

        oControl.Location = new Point(iX, iY);
        oControl.Width = oGroupBox.Width - (2 * iX);

        oControl.Anchor = AnchorStyles.Left | AnchorStyles.Top
            | AnchorStyles.Right;

        // Make sure that a bunch of unwanted events during initialization are
        // avoided.

        Debug.Assert(!m_bHandleControlEvents);

        oDynamicFilterRangeTrackBar.SelectedRangeChanged +=
            new EventHandler(this.RangeTrackBar_SelectedRangeChanged);

        oGroupBox.Controls.Add(oControl);

        iY += oControl.Height + DynamicFilterControlBottomMargin;

        // Append a pair of conditions to the Excel conditions.

        AppendConditions(oDynamicFilterConditions, sColumnName,
            sSelectedMinimumAddress, sSelectedMaximumAddress);

        return (oDynamicFilterRangeTrackBar);
    }