private void IndexDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }
            if (e.ColumnIndex == ReorganizeColumn.Index)
            {
                var ivm = IndexDataGridView.Rows[e.RowIndex].DataBoundItem as IndexViewModel;
                if (ivm.CanReorganize())
                {
                    ivm.Reorganize = !ivm.Reorganize;
                    IndexDataGridView.InvalidateRow(e.RowIndex);
                    UpdateReorganizeCount();
                }
            }
            else if (e.ColumnIndex == RebuildColumn.Index)
            {
                var ivm = IndexDataGridView.Rows[e.RowIndex].DataBoundItem as IndexViewModel;
                if (ivm.CanRebuild())
                {
                    ivm.Rebuild = !ivm.Rebuild;
                    IndexDataGridView.InvalidateRow(e.RowIndex);
                    UpdateRebuildCount();
                }
            }

            EnableDisable();
        }
        private void QueryFragmentationBackgroupWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            var             i     = (int)e.UserState;
            var             index = viewModels[i];
            DataGridViewRow row   = FindDataGridViewRowForIndex(index);

            if (row != null)
            {
                IndexDataGridView.InvalidateRow(row.Index);
            }
        }
 private void AutoResizeColumns()
 {
     IndexDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.ColumnHeader);
     ReorganizeColumn.Width = 70;
     RebuildColumn.Width    = 50;
     using (var g = IndexDataGridView.CreateGraphics())
     {
         AutoSizeColumn(g, SchemaNameColumn, viewModels.Select(x => x.SchemaName), 50, 170);
         AutoSizeColumn(g, ObjectNameColumn, viewModels.Select(x => x.ObjectName), 50, 170);
         AutoSizeColumn(g, IndexNameColumn, viewModels.Select(x => x.IndexName), 50, 170);
         AutoSizeColumn(g, IndexTypeDescriptionColumn, viewModels.Select(x => x.IndexTypeDescription), 50, 100);
         AutoSizeColumn(g, IndexSizeColumn, viewModels.Select(x => x.SizeDescription), 60, 200);
         AutoSizeColumn(g, IndexPagesColumn, viewModels.Select(x => x.PageCount.ToString()), 50, 100);
         AutoSizeColumn(g, AvgFragmentationPercentColumn, viewModels.Select(x => x.AvgFragmentationPercent.ToString()), 50, 100);
         AutoSizeColumn(g, RecommendationDescriptionColumn, viewModels.Select(x => x.RecommendationDescription), 100, 200);
         AutoSizeColumn(g, ReasonColumn, viewModels.Select(x => x.RecommendationReason), 250, 250);
         AutoSizeColumn(g, ColumnsDescriptionColumn, viewModels.Select(x => x.ColumnsDescription), 50, 200);
         AutoSizeColumn(g, IncludeColumnsDescriptionColumn, viewModels.Select(x => x.IncludeColumnsDescription), 50, 200);
         AutoSizeColumn(g, FilterDefinitionColumn, viewModels.Select(x => x.FilterDefinition), 50, 200);
         AutoSizeColumn(g, FillFactorColumn, viewModels.Select(x => x.FillFactor.ToString()), 50, 200);
         AutoSizeColumn(g, DataSpaceNameColumn, viewModels.Select(x => x.DataSpaceName), 50, 200);
     }
 }