Articles in this section
Category / Section

How to have two or more columns with column headers in a DropDown cell in WinForms GridGroupingControl?

1 min read

Drop down cell

To have two or more columns with column headers in a dropdown cell, the GridListControl cell type can be used. ShowColumnHeader property will be used for displaying the column headers along with the following code.

C#

//To add columns           
GridTableCellStyleInfo styleInfo = this.gridGroupingControl1.TableDescriptor.Columns["CategoryName"].Appearance.AnyRecordFieldCell;
styleInfo.DataSource = GetTable();
styleInfo.ValueMember = "ID";
styleInfo.DisplayMember = "Value";
styleInfo.CellType = "GridListControl";
GridDropDownGridListControlCellRenderer gcr1 = (GridDropDownGridListControlCellRenderer)gridGroupingControl1.TableControl.CellRenderers["GridListControl"];
gcr1.ListControlPart.ShowColumnHeader = true;
styleInfo.DropDownStyle = GridDropDownStyle.AutoComplete;

 

VB

'To add columns           
Dim styleInfo As GridTableCellStyleInfo = Me.gridGroupingControl1.TableDescriptor.Columns("CategoryName").Appearance.AnyRecordFieldCell
styleInfo.DataSource = GetTable()
styleInfo.ValueMember = "ID"
styleInfo.DisplayMember = "Value"
styleInfo.CellType = "GridListControl"
Dim gcr1 As GridDropDownGridListControlCellRenderer = CType(gridGroupingControl1.TableControl.CellRenderers("GridListControl"), GridDropDownGridListControlCellRenderer)
gcr1.ListControlPart.ShowColumnHeader = True
styleInfo.DropDownStyle = GridDropDownStyle.AutoComplete
 

 

TableControlCurrentCellShowingDropDown event triggers when the dropdown list opened.

C#

this.gridGroupingControl1.TableControlCurrentCellShowingDropDown += new GridTableControlCurrentCellShowingDropDownEventHandler(gridGroupingControl1_TableControlCurrentCellShowingDropDown);
 
void gridGroupingControl1_TableControlCurrentCellShowingDropDown(object sender, GridTableControlCurrentCellShowingDropDownEventArgs e)
{
    GridDropDownGridListControlCellRenderer cr = this.gridGroupingControl1.TableControl.CurrentCell.Renderer as GridDropDownGridListControlCellRenderer;
    if (cr != null)
        ((GridDropDownGridListControlPart)cr.ListControlPart).DropDownRows = 5;
}
 

 

VB

Private Me.gridGroupingControl1.TableControlCurrentCellShowingDropDown += New GridTableControlCurrentCellShowingDropDownEventHandler(AddressOf gridGroupingControl1_TableControlCurrentCellShowingDropDown)
 
Private Sub gridGroupingControl1_TableControlCurrentCellShowingDropDown(ByVal sender As Object, ByVal e As GridTableControlCurrentCellShowingDropDownEventArgs)
     Dim cr As GridDropDownGridListControlCellRenderer = TryCast(Me.gridGroupingControl1.TableControl.CurrentCell.Renderer, GridDropDownGridListControlCellRenderer)
     If cr IsNot Nothing Then
         CType(cr.ListControlPart, GridDropDownGridListControlPart).DropDownRows = 5
     End If
End Sub

 

Screenshot

Two columns in a single column header

 

Samples:

C#: Two or more columns with column header

VB: Two or more columns with column header

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied