С# Dynamic MenuStrip (без касания формы)

Можно ли динамически создавать MenuStrip без добавления экземпляра через форму?

Я сделал..

//Create menu
MenuStrip menu = new MenuStrip();
menu.name = "MainMenu";

// Create a Menu Item
ToolStripMenuItem file = new ToolStripMenuItem("File");

//Add item to Menu
menu.Items.Add(file);

//Click event
file.Click += new System.EventHandler(this.FileItemClick);

private void FileItemClick(object sender, EventArgs e)
{
    MessageBox.Show("File clicked");
}

Я знаю, что должен добавить его в форму с чем-то вроде этого.

this.MainMenuStrip = menu;
Controls.Add(menu);

но без экземпляра, уже перетащенного в форму, это невозможно. Есть ли способ на 100% динамически создать MenuStrip? Кроме того, подменю?

Спасибо


person Xarian Skyvv    schedule 20.10.2012    source источник


Ответы (1)


Да, это возможно. На самом деле все элементы управления, которые вы перетаскиваете на форму, генерируются дизайнером в виде кода. Чтобы точно увидеть, какой код вам нужен, просто перетащите элемент управления MenuStrip на форму, а затем откройте файл конструктора (в Блокноте) и скопируйте и вставьте оттуда код. Если ваша форма называется Form1.cs, то ваш файл дизайнера — Form1.designer.cs.

Файл конструктора представляет собой весь сгенерированный код, который создает и инициализирует все элементы управления в вашей форме значениями, которые вы выбираете в окне инструментов Properties при визуальном проектировании формы.

person xxbbcc    schedule 20.10.2012