コード例 #1
0
        public void OnMessage(object sender, LogMessage msg)
        {
            lock (messageCollection)
            {
                while (messageCollection.Count > maxMessages - 1)
                {
                    messageCollection.RemoveAt(0);
                }
                messageCollection.Add(msg);
            }

            bool display = false;
            switch (msg.LogType)
            {
                case LogType.Debug:
                    if (cbDebug.Checked)
                        display = true;
                    break;
                case LogType.Info:
                    if (cbInfo.Checked)
                        display = true;
                    break;
                case LogType.Warn:
                case LogType.Error:
                    if (cbError.Checked)
                        display = true;
                    break;
            }

            if (display)
            {
                while (lstMessages.Items.Count > maxMessages - 1)
                {
                    RemoveAtListItem(0);
                }
                AddListItem(msg);
            }
        }
コード例 #2
0
 private void AddListItem(LogMessage msg)
 {
     if (lstMessages.InvokeRequired)
     {
         AddListItemCallback cb = new AddListItemCallback(AddListItem);
         this.Invoke(cb, new object[] { msg });
     }
     else
     {
         this.lstMessages.Items.Add(msg);
     }
 }
コード例 #3
0
 private void AddAllListItems(LogMessage[] msgs)
 {
     if (lstMessages.InvokeRequired)
     {
         AddAllListItemsCallback cb = new AddAllListItemsCallback(AddAllListItems);
         this.Invoke(cb, new object[] { msgs });
     }
     else
     {
         this.lstMessages.BeginUpdate();
         foreach (LogMessage msg in msgs)
             this.lstMessages.Items.Add(msg);
         lstMessages_ItemsChanged(null, null);
         this.lstMessages.EndUpdate();
     }
 }