public MdiMain() { Data = "MdiMain"; IsMdiContainer = true; workerApp = new WorkerApp() { Visible = false }; menu = new MenuBar(new MenuBarItem [] { new MenuBarItem("_Options", new MenuItem [] { new MenuItem("_Run Worker", "", () => workerApp.RunWorker(), null, null, Key.CtrlMask | Key.R), new MenuItem("_Cancel Worker", "", () => workerApp.CancelWorker(), null, null, Key.CtrlMask | Key.C), null, new MenuItem("_Quit", "", () => Quit(), null, null, Key.CtrlMask | Key.Q) }), new MenuBarItem("_View", new MenuItem [] { }), new MenuBarItem("_Window", new MenuItem [] { }) }); menu.MenuOpening += Menu_MenuOpening; Add(menu); var statusBar = new StatusBar(new [] { new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Exit", () => Quit()), new StatusItem(Key.CtrlMask | Key.R, "~^R~ Run Worker", () => workerApp.RunWorker()), new StatusItem(Key.CtrlMask | Key.C, "~^C~ Cancel Worker", () => workerApp.CancelWorker()) }); Add(statusBar); Activate += MdiMain_Activate; Deactivate += MdiMain_Deactivate; Closed += MdiMain_Closed; Application.Iteration += () => { if (canOpenWorkerApp && !workerApp.Running && Application.MdiTop.Running) { Application.Run(workerApp); } }; }