private void AddMonitorMessage(string Channel, string Message, bool highlight, int serverID) { if (panel.InvokeRequired) { UpdateMonitorDelegate umd = new UpdateMonitorDelegate(AddMonitorMessage); panel.Invoke(umd, new object[] { Channel, Message, highlight, serverID }); } else { DateTime now = DateTime.Now; ListViewItem lvi = new ListViewItem(now.ToString()); lvi.SubItems.Add(Channel); lvi.SubItems.Add(Message); lvi.SubItems.Add(serverID.ToString()); if (highlight == true) { lvi.ForeColor = System.Drawing.ColorTranslator.FromHtml(monitorChannels.MonitorHighliteColor); } listMonitor.Items.Add(lvi); //scroll the listview to the bottom listMonitor.EnsureVisible(listMonitor.Items.Count - 1); } }
//OVR基于打分器的数量实例化打分器管理类,实例化网络通信类 private void frmOVREQIPadMark_Load(object sender, EventArgs e) { //开启主裁动作分监控服务 ServiceManager.EventMonitorServiceIsOnline += new MonitorServiceIsOnlineHandler(NotifyMonitorStatus); ServiceManager.Start(); updateMonitorDelegate = this.MonitorUpdate; //启动自动刷新JudgePanel的Timer initTimer(); //更新当前运动员姓名 lb_CurrentRider.Text = RegisterName; //获取舞步列表 m_dtMovementList = GVAR.g_EQDBManager.GetMatchMovementList(m_iCurMatchID); string m_strConfigJudge = GVAR.g_EQDBManager.GetMatchConfigJudge(m_iCurMatchConfigID); //Set Judge count. m_strArrJugdes = m_strConfigJudge.Split(','); //将callback实例(frm自身,frm实现了callback接口)和裁判名数组传入 m_judgeMgr = new JudgePanelMgr(this, m_strArrJugdes); //显示judge状态列表 m_dtJudgeStatus = new System.Data.DataTable(); m_dtJudgeStatus.TableName = "JudgeStatus"; m_dtJudgeStatus.Columns.Add("F_JudgeNum"); m_dtJudgeStatus.Columns.Add("F_Judge"); m_dtJudgeStatus.Columns.Add("F_Status"); m_dtJudgeStatus.Columns.Add("F_CurMovement"); int i = 1; foreach (string str in m_strArrJugdes) { m_dtJudgeStatus.Rows.Add(i++, str, "", 1); } this.dgvJudgeStatus.DataSource = m_dtJudgeStatus; dgvJudgeStatus.Columns[0].Visible = false; dgvJudgeStatus.Columns[3].Visible = false; dgvJudgeStatus.Columns[1].Width = 20; //Set net. m_netUdp = new NetUdp(); m_netUdp.eventHandlerDataRecv += new EventHandler <eventArgsDataRecv>(_netUdp_eventHandlerDataRecv); //Start service. if (!m_netUdp.Open(m_iPort)) { MessageBox.Show(m_netUdp.LastErrorMsg); return; } }
private void AddMonitorMessage(string Channel, string Message) { if (BottomPanel.InvokeRequired) { UpdateMonitorDelegate umd = new UpdateMonitorDelegate(AddMonitorMessage); BottomPanel.Invoke(umd, new object[] { Channel, Message }); } else { DateTime now = DateTime.Now; ListViewItem lvi = new ListViewItem(now.ToString()); lvi.SubItems.Add(Channel); lvi.SubItems.Add(Message); listMonitor.Items.Add(lvi); //scroll the listview to the bottom listMonitor.EnsureVisible(listMonitor.Items.Count - 1); } }