public void showmsg(TextBox tb) { if (list_msgdat.Count == 0 || tb == null) { return; } while (list_msgdat.Count > 0) { MsgData msg = list_msgdat.First(); if ((msg.msg_type & MsgCfg) != 0) { tb.AppendText(msg.ToString() + "\r\n"); } if (((int)msg.msg_type & ((int)MsgCfg) >> 8) != 0) { SaveMsg(msg.ToString()); } if (tb.Lines.Count() > MsgMaxLine / 2) { List <string> str_list = tb.Lines.ToList(); str_list.RemoveAt(0); tb.Lines = str_list.ToArray(); } tb.SelectionStart = tb.Text.Length; tb.ScrollToCaret(); lock (LockObj) { list_msgdat.RemoveFirst(); } } }
/// <summary> /// 在RichTextBox中显示信息 /// </summary> /// <param name="rtb"></param> public void showmsg(RichTextBox rtb) { if (list_msgdat.Count == 0 || rtb == null) { return; } while (list_msgdat.Count > 0) { MsgData msg = list_msgdat.First(); if ((msg.msg_type & MsgCfg) != 0) { rtb.AppendText(msg.ToString() + "\r\n"); rtb.SelectedText = msg.ToString() + "\r\n"; if (msg.msg_type == EM_MSGTYPE.DBG) { rtb.SelectionColor = System.Drawing.Color.DarkGray; } else if (msg.msg_type == EM_MSGTYPE.NOR) { rtb.SelectionColor = System.Drawing.Color.Blue; } else if (msg.msg_type == EM_MSGTYPE.WAR) { rtb.SelectionColor = System.Drawing.Color.DarkOrange; } else if (msg.msg_type == EM_MSGTYPE.ERR) { rtb.SelectionColor = System.Drawing.Color.Red; } } if (((int)msg.msg_type & ((int)MsgCfg) >> 8) != 0) { SaveMsg(msg.ToString()); } if (rtb.Lines.Count() > MsgMaxLine / 2) { rtb.Lines[0].Remove(0); } rtb.SelectionStart = rtb.Text.Length; rtb.ScrollToCaret(); lock (LockObj) { list_msgdat.RemoveFirst(); } } }
static void Main(string[] args) { EndpointAddress ea = new EndpointAddress("http://127.0.0.1:8000/SiteMsgService/"); ISiteMsgService proxy = ChannelFactory <ISiteMsgService> .CreateChannel(new BasicHttpBinding(), ea); for (int i = 0; i < 10; i++) { MsgData msg = new MsgData(); msg.MsgLable = "WebMsg"; msg.MsgContent = "快速启动"; msg.MsgPrivilege = "High"; msg.MsgTime = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"); string str = msg.ToString(); proxy.SendMsgToSever(msg); Thread.Sleep(2000); } }
/// <summary> /// 在表格中显示信息 /// </summary> /// <param name="dgv"></param> public void showmsg(DataGridView dgv) { if (list_msgdat.Count == 0 || dgv == null) { return; } //bupdate = false; //create col if (dgv.ColumnCount < 3) { dgv.Columns.Clear(); dgv.Columns.Add("dt", "时间"); dgv.Columns.Add("type", "类型"); dgv.Columns.Add("disc", "内容"); dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; dgv.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; dgv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dgv.Columns[2].FillWeight = 100; dgv.Columns[2].SortMode = DataGridViewColumnSortMode.NotSortable; dgv.ColumnHeadersHeight = 18; dgv.RowHeadersVisible = false; dgv.ReadOnly = true; dgv.AllowUserToAddRows = false; dgv.AllowUserToResizeColumns = false; dgv.AllowUserToResizeRows = false; dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dgv.ScrollBars = ScrollBars.Vertical; dgv.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(showtext); dgv.Rows.Clear(); } while (list_msgdat.Count > 0) { try { MsgData msg = list_msgdat.First(); if ((msg.msg_type & MsgCfg) != 0) { int idx = dgv.Rows.Add(); DataGridViewRow row = dgv.Rows[idx]; row.Cells[0].Value = msg.dt.ToString("HH:mm:ss.fff"); row.Cells[1].Value = msg.msg_type.ToString(); row.Cells[2].Value = msg.msg; if (msg.msg_type == EM_MSGTYPE.DBG) { row.DefaultCellStyle.BackColor = dgv.BackgroundColor; } else if (msg.msg_type == EM_MSGTYPE.NOR) { row.DefaultCellStyle.BackColor = System.Drawing.Color.LightCyan; } else if (msg.msg_type == EM_MSGTYPE.WAR) { row.DefaultCellStyle.BackColor = System.Drawing.Color.Wheat; } else if (msg.msg_type == EM_MSGTYPE.ERR) { row.DefaultCellStyle.BackColor = System.Drawing.Color.Pink; } else if (msg.msg_type == EM_MSGTYPE.SYS) { row.DefaultCellStyle.BackColor = dgv.BackgroundColor; } dgv.FirstDisplayedScrollingRowIndex = idx; if (dgv.RowCount > MsgMaxLine) { dgv.Rows.RemoveAt(0); } } if (((int)msg.msg_type & ((int)MsgCfg) >> 8) != 0) { SaveMsg(msg.ToString()); } //if (list_msgdat.Count % 10 == 0) //{ // Application.DoEvents(); // Thread.Sleep(1); //} } catch (Exception ex) { } lock (LockObj) { list_msgdat.RemoveFirst(); } } }