private void tVAreaDevices_DoubleClick(object sender, EventArgs e)
        {
            TreeNode TN = tVAreaDevices.SelectedNode;
            if (TN == null) return;

            if (TN.Level == 1)
            {
                if (TN.Tag == null)
                {//新建
                    video = new UserVideo();
                    video.Initialize(TN.Parent.Text, TN.Text);
                    video.Alarm += new EventHandler<AlarmEventArgs>(video_AlarmCallback);
                    video.ReceiveHorizon += new EventHandler<IVideo.HorizonEventArgs>(video_HorizonCallback);
                    video.ReceiveVertical += new EventHandler<IVideo.VerticalEventArgs>(video_ReceiveVertical);

                    this.alarmsGroup.Add(video, null);
                    this.alarmsInfo.Add(video, new List<Bitmap>());
                    this.alarmsIndex.Add(video, 0);

                    if (video.LoginEncoder())//登陆
                    {
                        if (video.OpenVideo())//开启
                        {
                            int x = videos.Count % 2;
                            int y = videos.Count / 2;
                            video.SetBounds(x * 352, y * 288, 352, 288);
                            this.tPRealVideo.Controls.Add(video);

                            UCShowDecode control = new UCShowDecode();
                            control.SetBounds(x * 352, y * 288, 352, 288);
                            this.tPVideoDecode.Controls.Add(control);

                            this.video.DecodeShow = control;

                            TN.Tag = video;
                            videos.Add(video);
                        }
                        else
                        {
                            MessageBox.Show("打开视频失败");
                        }
                    }
                    else
                        MessageBox.Show("登陆编码器失败");
                }
                else
                {//开关
                    video = TN.Tag as UserVideo;

                    if (video.IsOpened)
                    {
                        video.CloseVideo();    //关

                        video.Invalidate();     //刷新
                    }
                    else
                        video.OpenVideo();     //开
                }
            }
            else if (TN.Level == 2)
            {
                if (TN.Tag == null || TN.Parent.Tag == null) return;
                GroupInfo alarmGroup = TN.Tag as GroupInfo;
                VideoBase video = TN.Parent.Tag as VideoBase;

                if (alarmGroup == null || video == null) return;

                this.alarmsGroup[video] = alarmGroup;
            }
        }