Wraps a DateTimeRangeTrackBar 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.

The main task of this wrapper is to convert the Decimal range values used by the DynamicFilterDialog to and from the DateTime values used by the DateTimeRangeTrackBar control.

Inheritance: DateTimeRangeTrackBar, 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);
    }