Skip to main content

LayoutControl.ShowContextMenu Event

OBSOLETE

You should use the 'PopupMenuShowing' instead

Occurs when the Context Menu is about to be displayed.

Namespace: DevExpress.XtraLayout

Assembly: DevExpress.XtraLayout.v23.2.dll

NuGet Package: DevExpress.Win.Navigation

Declaration

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("You should use the 'PopupMenuShowing' instead", false)]
public event LayoutMenuEventHandler ShowContextMenu

Event Data

The ShowContextMenu event's data class is LayoutMenuEventArgs. The following properties provide information specific to this event:

Property Description
Allow Gets or sets whether the menu is allowed to be displayed. Inherited from PopupMenuShowingEventArgs.
HitInfo Contains information on the clicked point within the Layout Control. Inherited from PopupMenuShowingEventArgs.
Menu Gets or sets the menu that is about to be displayed. Inherited from PopupMenuShowingEventArgs.
Point Gets the point at which the menu is about to be displayed. Inherited from PopupMenuShowingEventArgs.

Remarks

Use the LayoutControl.PopupMenuShowing event instead.

Example

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:

Ex_ShowContextMenu

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();
}
See Also