创建一个方法,您可以对 ListBox 项做任何您想做的事情。
例如:
我的程序根据请求或流请求从服务器接收数据馈送。
在我的 winform1.cs 中,我将数据添加到列表框中的控件如下所示。
public void AddData(string data)
{
if (this.ResponseData.InvokeRequired)
BeginInvoke(new AddDataDelegate(AddData), new object[] { data });
else
{
this.ResponseData.Items.Insert(0, data);
DataDistro();
}
}
DataDistro 是我用来处理新数据的我的方法。另请注意,通过在索引值 0 处插入,新项目将始终位于顶部。
如果您使用的是 winForm,这会容易得多,此外,因为添加项目是由委托处理的,所以主线程仍然是打开的。如果您不使用将所有数据添加到列表框的方法,这将不起作用。使用上面提到的 bindingsource 方法将是下一个最好的方法。
这是我的 DataDistro 方法的示例:我的响应字符串如下所示:[Q],ATQuoteLastPrice,value
[B],datetime,open,high,low,close,volume
private void DataDistro()
{
string data = ListBox.Items[0].ToString();
string[] split = data.Split(new string[] {","}, stringsplitoptions.None);
if(spit[0] == "[Q]")
{
//do some work
}
if(split[0] == "[B]")
{
//Do some work
}
}
在您的情况下,您将在删除项目按钮单击结束时调用您的方法。如果工作量很大,我还建议做一个代表或 backgroundWorker。由于从按钮单击事件调用将由 UI 线程处理。
每次调用 AddData 方法时,添加数据后也会调用 DataDistro 方法。