Создайте метод, с которым вы можете делать то, что вы хотите с элементом 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], дата и время, открытый, высокий, низкий, близкий, объем
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, если работа обширная. Как вызов из нажатия кнопки Событие будет обработано потоком пользовательского интерфейса.
Каждый раз, когда вызывается метод AddData, метод DataDistro также вызывается после добавления данных.