Я обнаружил, что когда вы вызываете элемент управления и устанавливаете привязки (или очищаете их)
и объект установлен в нуль, это может выдать исключение нулевой ссылки, это отражается через invoke, выдавая ошибку, однако эта ошибка находится где-то еще в вашем коде:
быстрый пример:
public class test : Form
{
public test()
{
Thread t = new Thread(start);
t.Start();
}
public void start()
{
LoadCompleteEvent();
}
public void LoadComplete() //fired by LoadCompleteEvent();
{
if(this.InvokeIsRequired)
{
//do invoke
//and return
}
comboBoxEditBrand.Properties.Items.Clear();
comboBoxEditBrand.Properties.Items.AddRange(ListOfStuff.ToArray());
}
public void comboBoxEditBrand_SelectedItemChanged(object sender, eventargs e) // fired as control is changed
{
//error here!!
if(comboBoxEditBrand.SelectedItem == SomeBrandItem) //<- this is where the error is thrown!! check for null first!
{
//do something
}
}
}
это что-то вроде этого ... этот код, вероятно, не выдаст ошибку, потому что A) это из головы, и B) это сделано. НО это наподобие того, что напугало меня на полдня относительно ПОЧЕМУ эта ошибка была выдана.
просто место
if(comboBoxEditBrand.SelectedItem == null)
return;
где написано // ошибка здесь !! и это должно снова сработать.