Back to Devexpress

LayoutControl.PopupMenuShowing Event

windowsforms-devexpress-dot-xtralayout-dot-layoutcontrol-017ee469.md

latest4.8 KB
Original Source

LayoutControl.PopupMenuShowing Event

Occurs when the Context Menu is about to be displayed.

Namespace : DevExpress.XtraLayout

Assembly : DevExpress.XtraLayout.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
[DXCategory("Events")]
public event PopupMenuShowingEventHandler PopupMenuShowing
vb
<DXCategory("Events")>
Public Event PopupMenuShowing As PopupMenuShowingEventHandler

Event Data

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

PropertyDescription
AllowGets or sets whether the menu is allowed to be displayed.
HitInfoContains information on the clicked point within the Layout Control.
MenuGets or sets the menu that is about to be displayed.
PointGets the point at which the menu is about to be displayed.

Remarks

The PopupMenuShowing event fires when an attempt is made to display the Context Menu. You can handle this event to customize the menu (add new items or remove the existing ones). Menu items in the menu are represented by the DXMenuItem class objects and its descendants.

To prevent the menu from being invoked, set the Allow parameter to false.

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:

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

See Also

LayoutTreeViewPopupMenuShowing

Context Menu

LayoutControl Class

LayoutControl Members

DevExpress.XtraLayout Namespace