New to Telerik UI for WinForms? Start a free 30-day trial
Add ContextMenu to RadPageViewPage tabs
Updated over 6 months ago
This help article will demonstrate you how to add custom RadContextMenu to RadPageViewPages' tabs, as shown in the following image.
Figure 1: Context menu

To create your custom RadContextMenu, add its' RadMenuItems, set their properties and add them to the RadContextMenu.Items collection:
C#
private RadContextMenu contextMenu;
public MyForm()
{
InitializeComponent();
...
contextMenu = new RadContextMenu();
CreateContextMenu();
}
private void CreateContextMenu()
{
RadMenuItem addNewTabMenuItem = new RadMenuItem();
addNewTabMenuItem.Text = "Add New Tab";
addNewTabMenuItem.Click += new EventHandler(addNewTabMenuItem_Click);
contextMenu.Items.Add(addNewTabMenuItem);
RadMenuSeparatorItem separator = new RadMenuSeparatorItem();
contextMenu.Items.Add(separator);
RadMenuItem closeTabMenuItem = new RadMenuItem();
closeTabMenuItem.Text = "Close Tab";
closeTabMenuItem.Click += new EventHandler(closeTabMenuItem_Click);
contextMenu.Items.Add(closeTabMenuItem);
RadMenuItem closeAllButThisMenuItem = new RadMenuItem();
closeAllButThisMenuItem.Text = "Close All But This";
closeAllButThisMenuItem.Click += new EventHandler(closeAllButThisMenuItem_Click);
contextMenu.Items.Add(closeAllButThisMenuItem);
RadMenuItem closeAllTabsMenuItem = new RadMenuItem();
closeAllTabsMenuItem.Text = "Close All Tabs";
closeAllTabsMenuItem.Click += new EventHandler(closeAllTabsMenuItem_Click);
contextMenu.Items.Add(closeAllTabsMenuItem);
}
In the following code snippet you can observe, how to add the most common items functionalities:
C#
void addNewTabMenuItem_Click(object sender, EventArgs e)
{
RadPageViewPage newPage = new RadPageViewPage();
newPage.Text = "My new tab text";
radPageView1.Pages.Add(newPage);
}
void closeTabMenuItem_Click(object sender, EventArgs e)
{
radPageView1.Pages.Remove(radPageView1.SelectedPage);
}
void closeAllButThisMenuItem_Click(object sender, EventArgs e)
{
for (int i = radPageView1.Pages.Count - 1; i >= 0; i--)
{
if (radPageView1.Pages[i] != radPageView1.SelectedPage)
{
radPageView1.Pages.RemoveAt(i);
}
}
}
void closeAllTabsMenuItem_Click(object sender, EventArgs e)
{
radPageView1.Pages.Clear();
}
After the context menu is created it have to be associated with RadPageViewPages tabs. This can be done by subscribing to the RadPageView instance' MouseClick event:
C#
void radPageView1_MouseClick(object sender, MouseEventArgs e)
{
RadPageViewItem hitItem = this.radPageView1.ViewElement.ItemFromPoint(e.Location);
if (e.Button == MouseButtons.Right && hitItem != null)
{
contextMenu.Show(this.radPageView1.PointToScreen(e.Location));
}
}