Getting Started with Windows Forms PopupMenu

18 Nov 201811 minutes to read

Important
Starting with v16.2.0.x, if you refer to Syncfusion® assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer to this link to learn about registering Syncfusion® license key in your Windows Forms application to use our components.

This section provides a quick overview for working with the PopupMenu control in a WinForms application.

Dependent Assemblies

The following assemblies needs to be added as reference to use the control in any application.

  • Syncfusion.Tools.Windows
  • Syncfusion.Grid.Base
  • Syncfusion.Grid.Windows
  • Syncfusion.Shared.Base
  • Syncfusion.Shared.Windows
  • Syncfusion.Tools.Base
  • Syncfusion.SpellChecker.Base

Adding popup menu through designer

The PopupMenu control can be added through designer by following the below steps.

  1. Drag and drop the PopupMenu control from the toolbox (under the section “Syncfusion® Windows Visual Studio Version Toolbox Essential Studio® Version”) into the designer page.

    Adding the PopupMenu

  2. Now the PopupMenu control will be successfully added into the application along with the required dependent assemblies.

    Adding the PopupMenu

  3. The popup menu needs to be associated with a default parent bar item in order to fill it with bar items. Right-click on the PopupMenu control and select Add Default ParentBarItem… option. You can also add the default parent bar item by selecting the Add Default ParentBarItem… option from the Smart tag menu.

    Adding the PopupMenu

    Adding the PopupMenu

  4. After the Default ParentBarItem is added, add the items by right-clicking on the control in the designer and selecting Properties. Now, in the Properties panel, under Misc > ParentBarItem > Items choose the items by using the BarItem Collection Editor.

    Adding the PopupMenu

    Adding the PopupMenu

  5. In the BarItem Collection Editor window, click on the down arrow of the Add button. It will display different types of bar items. Using this, the user can add the appropriate bar item as per the need.

    Adding the PopupMenu

  6. In this illustration, the BarItem has been added. Similarly, the ParentBarItem, DropDownBarItem, ComboBoxBarItem, ListBarItem, StaticBarItem and TextBoxBarItem can be added.

  7. After an item is added, select the particular item in the BarItem Collection Editor window and set the text under the Appearance > Text section.

    Adding the PopupMenu

    Similarly, the image can be added under the Appearance > Image section.

    Adding the PopupMenu

  8. After the popup menu is populated, drag and drop the PopupMenusManager container inside which the popup menu will be hosted for display.

    Associating the PopupMenu

    Associating the PopupMenu

  9. Now the popup menu control should be associated with an appropriate control. In this example, the scenario is illustrated with the RichTextBox control.

    NOTE:
    To associate the PopupMenu control, you can choose any type of control like RichTextBox, Button, Label, TextBox, MaskedTextBox etc., of your choice.

    Associating the PopupMenu

  10. Right-click on the RichTextBox control in the designer and select Properties. Now, in the Properties panel, under XP Menus > XPContextMenu on popupMenusManager1 we need to assign the respective popup menu.

Associating the PopupMenu

Associating the PopupMenu

Now, the popup menu is successfully associated with the RichTextBox control.

Associating the PopupMenu

Adding popup menu through code

The PopupMenu control can be added through code by following the below steps.

  1. Add the following dependency assembly references to the project.

    • Syncfusion.Tools.Windows.dll
    • Syncfusion.Grid.Base.dll
    • Syncfusion.Grid.Windows.dll
    • Syncfusion.Shared.Base.dll
    • Syncfusion.Shared.Windows.dll
    • Syncfusion.Tools.Base.dll
    • Syncfusion.Licensing.dll
    • Syncfusion.SpellChecker.Base.dll

    NOTE: You can get these assemblies by browsing to the default assembly location:
    {System Drive}:\Program Files (x86)\Syncfusion\Essential Studio\{Platform}\{Build Version Number}\precompiledassemblies\{Framework Version Number}

  2. The below code snippets adds a PopupMenu control to the application.

​

//Declaration
   private Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenu popupMenu1;
   private Syncfusion.Windows.Forms.Tools.XPMenus.ParentBarItem parentBarItem1;
   private Syncfusion.Windows.Forms.Tools.XPMenus.BarItem barItem1;        
   private Syncfusion.Windows.Forms.Tools.XPMenus.BarItem barItem2;
   private Syncfusion.Windows.Forms.Tools.XPMenus.BarItem barItem3;
   private System.Windows.Forms.RichTextBox richTextBox1;
   private Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenusManager popupMenusManager1;
           
   //Initializing
   this.popupMenu1 = new Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenu(this.components);
   this.parentBarItem1 = new Syncfusion.Windows.Forms.Tools.XPMenus.ParentBarItem();
   this.barItem1 = new Syncfusion.Windows.Forms.Tools.XPMenus.BarItem();
   this.barItem2 = new Syncfusion.Windows.Forms.Tools.XPMenus.BarItem();
   this.barItem3 = new Syncfusion.Windows.Forms.Tools.XPMenus.BarItem();
   this.richTextBox1 = new System.Windows.Forms.RichTextBox();
   this.popupMenusManager1 = new Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenusManager(this.components);
   
   // popupMenu1
   this.popupMenu1.ParentBarItem = this.parentBarItem1;
   
   // barItem1
   this.barItem1.Image = new ImageExt(System.Drawing.Image.FromFile(@"..\..\..\File.png"));
   this.barItem1.SizeToFit = true;
   this.barItem1.Text = "File";
           
   // barItem2
   this.barItem2.Image = new ImageExt(System.Drawing.Image.FromFile(@"..\..\..\Edit.png"));
   this.barItem2.SizeToFit = true;
   this.barItem2.Text = "Edit";
              
   // barItem3
   this.barItem3.Image = new ImageExt(System.Drawing.Image.FromFile(@"..\..\..\Help.png"));
   this.barItem3.SizeToFit = true;
   this.barItem3.Text = "Help";
   
   // parentBarItem1
   this.parentBarItem1.MetroColor = System.Drawing.Color.LightSkyBlue;
   this.parentBarItem1.SizeToFit = true;          
   this.parentBarItem1.Items.AddRange(new Syncfusion.Windows.Forms.Tools.XPMenus.BarItem[] {this.barItem1, this.barItem2, this.barItem3});
   
   // richTextBox1
   this.richTextBox1.Size = new System.Drawing.Size(100, 96);
   this.popupMenusManager1.SetXPContextMenu(this.richTextBox1, this.popupMenu1);
               
   // Form1
   this.ClientSize = new System.Drawing.Size(282, 253);
   this.Text = "PopupMenu";
   this.Controls.Add(this.richTextBox1);
   this.ResumeLayout(false);
'Declaration
   Private popupMenu1 As Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenu
   Private parentBarItem1 As Syncfusion.Windows.Forms.Tools.XPMenus.ParentBarItem
   Private barItem1 As Syncfusion.Windows.Forms.Tools.XPMenus.BarItem
   Private barItem2 As Syncfusion.Windows.Forms.Tools.XPMenus.BarItem
   Private barItem3 As Syncfusion.Windows.Forms.Tools.XPMenus.BarItem
   Private richTextBox1 As System.Windows.Forms.RichTextBox
   Private popupMenusManager1 As Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenusManager
   
   'Initializing
   Me.popupMenu1 = New Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenu(Me.components)
   Me.parentBarItem1 = New Syncfusion.Windows.Forms.Tools.XPMenus.ParentBarItem()
   Me.barItem1 = New Syncfusion.Windows.Forms.Tools.XPMenus.BarItem()
   Me.barItem2 = New Syncfusion.Windows.Forms.Tools.XPMenus.BarItem()
   Me.barItem3 = New Syncfusion.Windows.Forms.Tools.XPMenus.BarItem()
   Me.richTextBox1 = New System.Windows.Forms.RichTextBox()
   Me.popupMenusManager1 = New Syncfusion.Windows.Forms.Tools.XPMenus.PopupMenusManager(Me.components)
   
   ' popupMenu1
   Me.popupMenu1.ParentBarItem = Me.parentBarItem1
   
   ' barItem1
   Me.barItem1.Image = New ImageExt(System.Drawing.Image.FromFile("..\..\..\File.png"))
   Me.barItem1.SizeToFit = True
   Me.barItem1.Text = "File"
   
   ' barItem2
   Me.barItem2.Image = New ImageExt(System.Drawing.Image.FromFile("..\..\..\Edit.png"))
   Me.barItem2.SizeToFit = True
   Me.barItem2.Text = "Edit"
   
   ' barItem3
   Me.barItem3.Image = New ImageExt(System.Drawing.Image.FromFile("..\..\..\Help.png"))
   Me.barItem3.SizeToFit = True
   Me.barItem3.Text = "Help"
   
   ' parentBarItem1
   Me.parentBarItem1.MetroColor = System.Drawing.Color.LightSkyBlue
   Me.parentBarItem1.SizeToFit = True
   Me.parentBarItem1.Items.AddRange(New Syncfusion.Windows.Forms.Tools.XPMenus.BarItem() {Me.barItem1, Me.barItem2, Me.barItem3})
   
   ' richTextBox1
   Me.richTextBox1.Size = New System.Drawing.Size(100, 96)
   Me.popupMenusManager1.SetXPContextMenu(Me.richTextBox1, Me.popupMenu1)
   
   ' Form1
   Me.ClientSize = New System.Drawing.Size(282, 253)
   Me.Text = "PopupMenu"
   Me.Controls.Add(Me.richTextBox1)
   Me.ResumeLayout(False)

Add the PopupMenu

Adding popup menu through NuGet package

Refer control dependencies section to get the list of assemblies or NuGet package needs to be added as reference to use the control in any application.

Find more details regarding how to install the NuGet packages in WinForms application in the following link: Steps to install NuGet packages.