Я использую winforms в c#.Список Коробка после добавления нескольких записей
Я упростил свое приложение, так что у него есть только ListBox
и Button
.
Вот мой щелчок кнопки событие:
private void button1_Click(object sender, EventArgs e)
{
for (long i = 0; i < 66000; i++)
{
listBox1.Items.Add(i.ToString());
listBox1.SelectedIndex = listBox1.Items.Count - 1;
}
}
Когда я запускаю мое приложение и нажать на кнопку Я вижу ListBox
обновление и через некоторое время (оно изменяется запись 3041 или около того) программа будет зависнуть поскольку он добавляет остальную часть записей после ее завершения, ListBox
будет соответствующим образом обновляться.
Почему висит? Слишком много, чтобы справиться? Я посмотрел на свое использование процессора, и память, похоже, не так сильно использовалась, поэтому я не уверен, в чем проблема.
Зачем вам даже в 66 000 товаров в список? – Svexo
Мне действительно не нужно, чтобы многие использовали его для проверки проблемы, которую я имел в более крупном приложении. Я выбираю 66 000, потому что я видел другой вопрос, который имеет проблемы, когда в списке имеется более 65535 элементов, проблема возникает до того, как она попадет на это множество предметов. – hrh
Да, ты его переполнил. ListBoxes действительно не нравится, что вы это делаете. Если вам действительно нужно добавить загрузку элементов в ListBox, используйте ['ListBox.Items.AddRange()'] (http://msdn.microsoft.com/en-us/library/system.windows.forms .listbox.objectcollection.addrange.aspx) или вызовите ['ListBox.BeginUpdate()'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.beginupdate.aspx) перед добавив элементы и ['ListBox.EndUpdate()'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.endupdate.aspx). –