1) You can handle the TableControlCurrentCellKeyDown and call GridRecord.Delete for each selected record. (Assumes you are using the TableOptions.AllowSelections = None and TableOptions.ListBoxSelectionMode set to somthing other than None.).
private void gridGroupingControl1_TableControlCurrentCellKeyDown(object sender, GridTableControlKeyEventArgs e)
{
if(e.Inner.KeyCode == Keys.Delete)
{
int rowIndex = e.TableControl.CurrentCell.RowIndex;
int colIndex = e.TableControl.CurrentCell.ColIndex;
Console.WriteLine("del key");
ArrayList a = new ArrayList();
foreach(SelectedRecord rec in e.TableControl.Table.SelectedRecords)
{
a.Add(rec);
}
foreach(SelectedRecord rec in a)
{
rec.Record.Delete();
}
e.Inner.Handled = true;
e.TableControl.CurrentCell.MoveTo(rowIndex, colIndex);
}
}
2) One way you can do this is to listen to teh TableDescriptor.GroupdeColumnsChanging.
private void GroupedColumns_Changing(object sender, Syncfusion.Collections.ListPropertyChangedEventArgs e)
{
if(e.Action == Syncfusion.Collections.ListPropertyChangedType.Insert)
{
SortColumnDescriptor desc = e.Item as SortColumnDescriptor;
this.gridGroupingControl1.TableDescriptor.VisibleColumns.Remove(desc.Name);
}
}
3)
this.gridGroupingControl1.Table.CollapseAllRecords();
this.gridGroupingControl1.Table.CollapseAllGroups();