Hide Item option in the context menu should not be present for those items. We should also consider a cancellable ItemHiding event. The custom control below handles this scenario: public class CustomRadLayoutControl : RadLayoutControl { public override string ThemeClassName { get { return typeof(RadLayoutControl).FullName; } } protected override void InitializeDropDownMenu() { FieldInfo hideMenuItemFi = typeof(RadLayoutControl).GetField("hideMenuItem", BindingFlags.Instance | BindingFlags.NonPublic); RadMenuItem hideMenuItem = hideMenuItemFi.GetValue(this) as RadMenuItem; if (hideMenuItem == null) { hideMenuItemFi.SetValue(this, new RadMenuItem(LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuCustomize))); hideMenuItem = hideMenuItemFi.GetValue(this) as RadMenuItem; } hideMenuItem.Click += customizeItem_Click; RadDropDownMenu menu = typeof(RadLayoutControl).GetField("dropDownMenu", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this) as RadDropDownMenu; menu.Items.Add(hideMenuItem); } private void customizeItem_Click(object sender, EventArgs e) { if (this.AllowCustomize) { this.ShowCustomizeMenuDialog(); } } private void ShowCustomizeMenuDialog() { if (this.CustomizeDialog.Visible) { return; } this.ShowCustomDragOverlay(); this.CustomizeDialog.Owner = this.FindForm(); ThemeResolutionService.ApplyThemeToControlTree(this.CustomizeDialog, this.ThemeName); if (this.CustomizeDialog.Location == Point.Empty) { this.CustomizeDialog.Location = GetInitialCustomizeDialogLocation(); } this.CustomizeDialog.Show(); this.CustomizeDialog.RightToLeft = this.RightToLeft; } private void ShowCustomDragOverlay() { FieldInfo dragOverlayFi = typeof(RadLayoutControl).GetField("dragOverlay", BindingFlags.Instance | BindingFlags.NonPublic); LayoutControlDraggableOverlay dragOverlay = dragOverlayFi.GetValue(this) as LayoutControlDraggableOverlay; if (dragOverlay == null) { dragOverlayFi.SetValue(this, new CustomLayoutControlDraggableOverlay(this)); dragOverlay = dragOverlayFi.GetValue(this) as LayoutControlDraggableOverlay; } dragOverlay.ThemeName = this.ThemeName; dragOverlay.UpdatePreview(); dragOverlay.Dock = DockStyle.Fill; ((RadLayoutControlControlCollection)this.Controls).AddInternal(dragOverlay); dragOverlay.Visible = true; dragOverlay.BringToFront(); this.PerformLayout(); this.Refresh(); } } public class CustomLayoutControlDraggableOverlay : LayoutControlDraggableOverlay { private RadMenuItem hideMenuItem; public CustomLayoutControlDraggableOverlay(RadLayoutControl owner) : base(owner) { RadDropDownMenu contextMenu = typeof(LayoutControlDraggableOverlay).GetField("contextMenu", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this) as RadDropDownMenu; contextMenu.Items.Clear(); this.hideMenuItem = new RadMenuItem(LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuHideItem)); this.hideMenuItem.Text = LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuHideItem); this.hideMenuItem.Click += hideMenuItem_Click; contextMenu.Items.Add(hideMenuItem); contextMenu.DropDownOpening += ContextMenu_DropDownOpening; } private void ContextMenu_DropDownOpening(object sender, CancelEventArgs e) { if (this.SelectedItems.Count == 1 && this.SelectedItems[0].Name == "layoutControlItem4") { e.Cancel = true; } } private void hideMenuItem_Click(object sender, EventArgs e) { foreach (DraggableLayoutControlItem item in this.SelectedItems) { if (item.Name == "layoutControlItem4") { continue; } ((CustomRadLayoutControl)this.Owner).HideItem(item.AssociatedItem); } this.UpdatePreview(); } }