/// <summary> /// 用户登陆/登出事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormMain_OnUserLoginOrOutEventHandler(object sender, UserLoginOrOutEventArgs e) { if (e.IsLogin) { //用户登陆处理 labelXUserName.Text = e.User.Name; this.CurrentUser = e.User; updateSuperTabControlPanel(OpenUCType.OpenGISVideo); } else { //用户登出处理 labelXUserName.Text = ""; this.CurrentUser = null; updateSuperTabControlPanel(OpenUCType.OpenLogin); ucGISVideo = null; ucAudioVideoProcess = null; ucMeshManagement2 = null; ucUserSettings = null; } }
/// <summary> /// 更新标签面板中的内容 /// </summary> /// <param name="type"></param> private void updateSuperTabControlPanel(OpenUCType type) { switch (type) { case OpenUCType.OpenLogin: if (ucGISVideo != null && superTabControlPanelGISVideo.Contains(ucGISVideo)) { ucGISVideo.Visible = false; } tableLayoutPanelLogin.Visible = true; //显示 superTabControlMain.SelectedTabIndex = 0; break; case OpenUCType.OpenGISVideo: if (CurrentUser == null) { updateSuperTabControlPanel(OpenUCType.OpenLogin); } else { if (ucGISVideo == null) { ucGISVideo = new UCGISVideo(this); ucGISVideo.Dock = DockStyle.Fill; superTabControlPanelGISVideo.Controls.Add(ucGISVideo); } tableLayoutPanelLogin.Visible = false; //隐藏登陆界面 ucGISVideo.Visible = true; //显示GIS定位视频界面 //置顶主窗体 SetFormMainTop(); } break; case OpenUCType.OpenAudioVideoProcess: if (CurrentUser == null) { updateSuperTabControlPanel(OpenUCType.OpenLogin); } else { if (ucAudioVideoProcess == null) { ucAudioVideoProcess = new UCAudioVideoProcess(this); ucAudioVideoProcess.Dock = DockStyle.Fill; superTabControlPanelAudioVideoProcess.Controls.Clear(); //清空所有控件 superTabControlPanelAudioVideoProcess.Controls.Add(ucAudioVideoProcess); } //置顶已全屏的视频面板 SetVideoPanelTop(); } break; case OpenUCType.OpenMeshManagement: if (CurrentUser == null) { updateSuperTabControlPanel(OpenUCType.OpenLogin); } else { if (ucMeshManagement2 == null) { ucMeshManagement2 = new UCMeshManagement2(this); ucMeshManagement2.Dock = DockStyle.Fill; ucMeshManagement2.OnMeshDeviceInfoModeified += UcMeshManagement2_OnMeshDeviceInfoModeified; superTabControlPanelMeshManagement.Controls.Clear(); //清空所有控件 superTabControlPanelMeshManagement.Controls.Add(ucMeshManagement2); } //置顶主窗体 SetFormMainTop(); } break; case OpenUCType.OpenUserSettings: if (CurrentUser == null) { updateSuperTabControlPanel(OpenUCType.OpenLogin); } else { if (ucUserSettings == null) { ucUserSettings = new UCUserSettings(this); ucUserSettings.Dock = DockStyle.Fill; ucUserSettings.CurrentUser = CurrentUser; superTabControlPanelUserSettings.Controls.Clear(); //清空所有控件 superTabControlPanelUserSettings.Controls.Add(ucUserSettings); } //置顶主窗体 SetFormMainTop(); } break; } }