using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace laserPTZ.insertForm.service.impl { public class InsertImpl :IInsertService { public void SetPanelControl(Panel panelMain, String frmType,string rtspUrl,int activeIndex) { panelMain.Controls.Clear(); switch (frmType) { case "realTime": if (CtrlRealTime.ctrlRealTime == null) { InsertNewCtrlPage(panelMain, 0, new CtrlRealTime(rtspUrl, activeIndex)); } else { new Thread(new ThreadStart(() => { try { CtrlRealTime.ctrlRealTime.initDev(activeIndex); InsertNewCtrlPage(panelMain, 0, CtrlRealTime.ctrlRealTime); } catch (Exception e){ } })).Start(); } break; case "home": if (CtrlHome.ctrlHome == null) { InsertNewCtrlPage(panelMain, 0, new CtrlHome()); } else { InsertNewCtrlPage(panelMain, 0, CtrlHome.ctrlHome); } break; default: break; } } public void InsertNewCtrlPage(Panel panelMain, Int32 index, Control newCtrlPage) { FormMain.formMain.Invoke(new EventHandler(delegate { panelMain.Controls.Add(newCtrlPage); newCtrlPage.Dock = DockStyle.Fill; })); } public void setToFirst(Panel panel) { panel.BringToFront(); } public void setToLast(Panel panel) { panel.SendToBack(); } } }