The main Menu is called the MenuStrip
Menu’s that pop up within the context of some control, for instance when you right click, use the ContextMenuStrip.

Creating a MenuStrip

Drag the menu tool onto the top of the form

You can edit the menu contents using the properties > collections (recomended for complex menu’s), or just by clicking on the bar and adding entries, then double clicking them to edit their action code

Adding And Removing MenuStrip Items


	//REMOVE ANY EXISTING MENU ITEMS
	ToolStripItem ^ExistingMenuItem;
	while (recentFilesToolStripMenuItem->DropDownItems->Count)
	{
		ExistingMenuItem = recentFilesToolStripMenuItem->DropDownItems[0];
		recentFilesToolStripMenuItem->DropDownItems->Remove(ExistingMenuItem);
	}

	//ADD NEW MENU ITEMS
	ToolStripMenuItem ^NewMnuItem;
	for (Count = 0; Count < RecentFilenamesCount; Count++)
	{
		NewMnuItem = gcnew ToolStripMenuItem();		//(Need to create new each time)

		TempString = RecentFilenames[Count];
		NewMnuItem->Text = TempString;
		NewMnuItem->Size = System::Drawing::Size(160, 22);
		NewMnuItem->Click += gcnew System::EventHandler(this, &frmMain::someToolStripFileMenuRecentFile_Click);

		recentFilesToolStripMenuItem->DropDownItems->Add(NewMnuItem);
	}

//OR USE THIS FOR SINGLE ADDITION
	launchCCAsAdminToolStripMenuItem = gcnew System::Windows::Forms::ToolStripMenuItem();
	launchCCAsAdminToolStripMenuItem->Name = L"launchCCAsAdminToolStripMenuItem";
	launchCCAsAdminToolStripMenuItem->Size = System::Drawing::Size(200, 22);
	launchCCAsAdminToolStripMenuItem->Text = L"Some Text";
	launchCCAsAdminToolStripMenuItem->Click += gcnew System::EventHandler(this, &frmMain::launchCCAsAdminToolStripMenuItem_Click);
	toolsToolStripMenuItem->DropDownItems->Add(someToolStripMenuItem);

Removing an individual item


	toolsToolStripMenuItem->DropDownItems->Remove(someToolStripMenuItem);

Adding An Array Of MenuStrip Items

Define global array

private: array<System::Windows::Forms::ToolStripMenuItem^> ^graphicStatusFormToolStripMenuItem;
In Form Load

	//CREATE THE ARRAY
	graphicStatusFormToolStripMenuItem = gcnew array<System::Windows::Forms::ToolStripMenuItem^>(NUMBER_OF_GRAPHIC_STATUS_FORMS);

	//CREATE EACH MENU ITEM
	ToolStripMenuItem ^NewMnuItem;
	for (Count = 0; Count < NUMBER_OF_GRAPHIC_STATUS_FORMS; Count++)
	{
		NewMnuItem = gcnew ToolStripMenuItem();		//(Need to create new each time)

		NewMnuItem->Text = L"Graphic Status " + Convert::ToString(Count + 1);
		NewMnuItem->Size = System::Drawing::Size(165, 22);
		NewMnuItem->Click += gcnew System::EventHandler(this, &frmMain::graphicStatusToolStripMenuItem_Click);

		//Add the item to the menu
		this->graphicStatusToolStripMenuItem->DropDownItems->Add(NewMnuItem);
	}
In the event handler

	int Count;
	int FormId = 0xff;

	ToolStripMenuItem ^ClickedItem = dynamic_cast<ToolStripMenuItem^>(sender);
	if (ClickedItem != nullptr)
	{
		for (Count = 0; Count < NUMBER_OF_GRAPHIC_STATUS_FORMS; Count++)
		{
			if (ClickedItem->Text == L"Graphic Status " + Convert::ToString(Count + 1))
			{
				FormId = Count;
				break;
			}
		}
	}
	//EXIT IF NOT VALID
	if (FormId >= NUMBER_OF_GRAPHIC_STATUS_FORMS)
		return;
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.

Comments

Your email address will not be published. Required fields are marked *