using System.Diagnostics;
using System.Windows.Forms;
namespace Test.SqlCopy
{
///
/// can be used to display trace output into a listbox
///
public class ListboxTrace : TraceListener
{
private ListBox _lb;
///
/// ctor
///
/// The listbox that will receive trace data
public ListboxTrace(ListBox lb)
{
_lb = lb;
}
public override void WriteLine(string message)
{
if (!_lb.InvokeRequired)
{
while (_lb.Items.Count > 50)
{
_lb.Items.RemoveAt(49);
}
_lb.Items.Insert(0, message);
}
else
{
_lb.BeginInvoke(new MethodInvoker(delegate() { WriteLine(message); }));
}
}
public override void Write(string message)
{
// ignore this
}
}
}