ResetAllDynamicFilters()
{
AssertValid();
// Turn off automatic recalculation.
SetManualCalculation();
// Stop multiple IDynamicFilterRangeTrackBar.SelectedRangeChanged
// events from being handled, which would be inefficient. Instead,
// process all the changes at once when done looping.
m_bHandleControlEvents = false;
// Loop through all child controls of both group boxes.
foreach ( GroupBox oGroupBox in
new GroupBox[] {grpEdgeFilters, grpVertexFilters} )
{
foreach (Control oControl in oGroupBox.Controls)
{
if (oControl is IDynamicFilterRangeTrackBar)
{
// Set the selected range to the entire available range.
IDynamicFilterRangeTrackBar oDynamicFilterRangeTrackBar =
(IDynamicFilterRangeTrackBar)oControl;
oDynamicFilterRangeTrackBar.SetSelectedRange(
oDynamicFilterRangeTrackBar.AvailableMinimum,
oDynamicFilterRangeTrackBar.AvailableMaximum
);
// Update the persisted settings for this range track bar.
// This updates two cells in the dynamic filter settings
// table.
String sSelectedMinimumAddress, sSelectedMaximumAddress;
m_oDynamicFilterSettings.SetSettings(
oDynamicFilterRangeTrackBar.TableName,
oDynamicFilterRangeTrackBar.ColumnName,
oDynamicFilterRangeTrackBar.SelectedMinimum,
oDynamicFilterRangeTrackBar.SelectedMaximum,
out sSelectedMinimumAddress,
out sSelectedMaximumAddress);
}
}
}
m_bHandleControlEvents = true;
// Now recalculate the dynamic filter columns using the values just
// written to the dynamic filter settings table.
RecalculateDynamicFilterColumns(DynamicFilterColumns.AllTables);
FireDynamicFilterColumnsChanged(DynamicFilterColumns.AllTables);
}