My problem is, if I call TableDescriptor.Columns.Remove() after groupingGrid.TableDescriptor.VisibleColumns.Remove("ColumnName");
The column will gone and leave a blank gap in the grid(see pic), but if I call Columns.Remove() without VisibleColumns.Remove(). The columns in the grid will arrange automatically so there is no such gap.
remove.zip