Back to Devexpress

How to: Customize the Standard Column Header Menu

windowsforms-3053-controls-and-libraries-data-grid-examples-miscellaneous-how-to-customize-the-standard-column-header-menu.md

latest2.0 KB
Original Source

How to: Customize the Standard Column Header Menu

  • Feb 28, 2024

The following code sample creates a menu item that fixes the column to the left. This item is added to the column header’s context menu next to the Hide This Column item:

csharp
void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
    if (e.MenuType == GridMenuType.Column) {
        DXMenuItem item = new DXMenuItem("Fix/Unfix This Column", (s, args) => {
            GridColumn column = (s as DXMenuItem).Tag as GridColumn;
            if (column.Fixed == FixedStyle.Left)
                column.Fixed = FixedStyle.None;
            else column.Fixed = FixedStyle.Left;
        });
        item.Tag = e.HitInfo.Column;
        int index = e.Menu.Items.IndexOf(e.Menu.Find(GridStringId.MenuColumnRemoveColumn));
        e.Menu.Items.Insert(index + 1, item);
    }
}
vb
Private Sub gridView1_PopupMenuShowing(ByVal sender As Object, ByVal e As PopupMenuShowingEventArgs)
    If e.MenuType = GridMenuType.Column Then
        Dim item As DXMenuItem = New DXMenuItem("Fix/Unfix This Column", Function(s, args)
            Dim column As GridColumn = TryCast((TryCast(s, DXMenuItem)).Tag, GridColumn)

            If column.Fixed = FixedStyle.Left Then
                column.Fixed = FixedStyle.None
            Else
                column.Fixed = FixedStyle.Left
            End If
        End Function)
        item.Tag = e.HitInfo.Column
        Dim index As Integer = e.Menu.Items.IndexOf(e.Menu.Find(GridStringId.MenuColumnRemoveColumn))
        e.Menu.Items.Insert(index + 1, item)
    End If
End Sub

Refer to the following help topic for more information: Modify Built-In Context Menus.