partial class MainForm : Form { > > ToolStripItem[] Copy; > > protected override void OnLoad(EventArgs e) { > Copy = new ToolStripItem[MainMenuStrip.Items.Count]; > MainMenuStrip.Items.CopyTo(Copy, 0); > SetVisibility(MainMenuStrip.Items); >} > > void NewUser_Click(object sender, EventArgs e) { > MainMenuStrip.Items.Clear(); > MainMenuStrip.Items.AddRange(Copy); > // create copy again for next user > Copy = new ToolStripItem[MainMenuStrip.Items.Count]; > MainMenuStrip.Items.CopyTo(Copy, 0); SetVisibility(MainMenuStrip.Items); > } > > void SetVisibility(ToolStripItemCollection items) { > foreach (ToolStripItem item in new IsolatorCollection(items)) > { > if (item.Tag != null) > if ( CurrentUserShoundNotSeeThis(item.Tag)) > items.Remove(item); > // enumerate sub-items (if could have them) > ToolStripDropDownItem dropItem = item as ToolStripDropDownItem; > if (dropItem != null) > SetVisibility(dropItem.DropDownItems); > } >}