Newer
Older
laserPTZ_CS / insertForm / service / impl / InsertImpl.cs
wangxitong on 11 Sep 1 KB first commit
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();
        }

    }
}