Один contextMenuStrip для разных форм C#
Вариант размещения одного contextMenuStrip на разных формах для разных элементов.
В основном пространстве имен добавляем класс с contextMenuStrip:
namespace TestContextMenu
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
static class Menushki
{
public static ContextMenuStrip menu1 = new ContextMenuStrip();
}
}
В нашем случае это класс Menushki
Затем при загрузке приложения, создаем саму менюшку, можно программно задать все элементы и параметры, но на мой взгляд проще сделать конструктором и при загрузке первой формы просто назначить:
private void Form1_Load(object sender, EventArgs e)
{
Menushki.menu1 = contextMenuStrip1;
}
Далее если надо использовать это меню в любой форме просто при загрузке формы ассоциируем это меню с необходимым элементом. Можно и менять его из любой формы:
private void Form2_Load(object sender, EventArgs e)
{
this.ContextMenuStrip = Menushki.menu1;
}
Вот так это выглядит в примере:
Скачать пример:
Скачать файл: testcontextmenu.rar [36.75 Kb] (cкачиваний: 4)