using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WindowsExtensions;
namespace BasicEngineeringUIFactory.UserControls
{
public partial class UserControlMessages : UserControl
{
public UserControlMessages()
{
InitializeComponent();
}
public void Add(string[] str)
{
this.InvokeIfNeeded<string[]>(AddPrivate, str);
}
private void Clear()
{
this.InvokeIfNeeded(() => { listView.Items.Clear(); });
}
private static readonly TimeSpan Span = new TimeSpan(0, 1, 0);
private void AddPrivate(string[] str)
{
DateTime dt = DateTime.Now;
string[] ss = new string[] { str[0], dt.ToLongTimeString(), str[1] };
ListViewItem li = new ListViewItem(ss);
li.Tag = dt;
listView.Items.Add(li);
int i = listView.Items.Count - 1;
for (; i >= 0; i--)
{
ListViewItem it = listView.Items[i];
DateTime t = (DateTime)it.Tag;
TimeSpan ts = dt - t;
if (ts > Span)
{
break;
}
}
if (i < listView.Items.Count - 1)
{
for (int j = 0; j <= i; j++)
{
listView.Items.RemoveAt(0);
}
}
/* if (listView.Items.Count > 20)
{
listView.Items.RemoveAt(0);
}*/
if (!listView.IsDisposed)
{
listView.TopItem = li;
}
}
private void toolStripButtonClear_Click(object sender, EventArgs e)
{
Clear();
}
private void listView_Resize(object sender, EventArgs e)
{
columnHeaderMessage.Width = listView.Width - 100;
}
}
}