Back to Devexpress

How to: Implement custom functionality for layout context menu

windowsforms-2206-controls-and-libraries-form-layout-managers-layout-and-data-layout-controls-examples-how-to-implement-custom-functionality-for-layout-context-menu.md

latest2.2 KB
Original Source

How to: Implement custom functionality for layout context menu

  • Nov 13, 2018

The following example shows how to add custom menu items to the Context Menu via the LayoutControl.PopupMenuShowing event.

Two menu items are added: Save Layout which saves the current layout to a memory buffer; and Restore Layout which restores the previously saved layout. Clicking these items will call the LayoutControl.SetDefaultLayout and LayoutControl.RestoreDefaultLayout methods respectively.

The image below shows the resultant menu:

csharp
using DevExpress.XtraLayout;
using DevExpress.Utils.Menu;

private void layoutControl1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
   e.Menu.Items.Add(new DXMenuItem("&Save Layout", new EventHandler(SaveLayout)));
   e.Menu.Items.Add(new DXMenuItem("&Restore Layout", new EventHandler(RestoreLayout)));
}

private void SaveLayout(object sender, EventArgs e) {
   layoutControl1.SetDefaultLayout();
}

private void RestoreLayout(object sender, EventArgs e) {
   layoutControl1.RestoreDefaultLayout();
}
vb
Imports DevExpress.XtraLayout
Imports DevExpress.Utils.Menu

Private Sub LayoutControl1_PopupMenuShowing(ByVal sender As System.Object, _
  ByVal e As PopupMenuShowingEventArgs) Handles LayoutControl1.PopupMenuShowing
    e.Menu.Items.Add(New DXMenuItem("&Save Layout", AddressOf SaveLayout))
    e.Menu.Items.Add(New DXMenuItem("&Restore Layout", AddressOf RestoreLayout))
End Sub

Private Sub SaveLayout(ByVal sender As Object, ByVal e As EventArgs)
    LayoutControl1.SetDefaultLayout()
End Sub

Private Sub RestoreLayout(ByVal sender As Object, ByVal e As EventArgs)
    LayoutControl1.RestoreDefaultLayout()
End Sub