Se você ainda não esbarrou com este erro, está com sorte.
Quando acontece, é sempre no fechamento do formulário, sendo apresentado inúmeras vezes.
O erro apenas acontece se o autosizemode de uma coluna do tipo datagridviewcombobox estiver definido. Se o autosizemode não for definido, o erro não acontece.
Isso nos leva a duas situações :
O erro pode acontecer quando o autosizemode está definido a nível da DataGridView e existe uma coluna do tipo ComboBox na GridView
O erro pode acontecer quando o autosizemode está definido a nível de coluna e foi definido na coluna do tipo ComboBox
O erro ocorre porque no momento do fechamento do formulário, o formulário realiza primeiramente o dispose do datasource da coluna ComboBox. Quando o datasource é destruido e o autosize está definido, a ComboBox precisa recalcular o seu tamanho, então faz uma requisição por dados que não estão mais lá
Sem dúvida que desligar o autoSizeMode é uma solução, mas não desejamos isso, precisamos do autoSize
No momento em que o formulário for fazer o dispose do datasource da comboboxColumn, a ComboBoxColumn precisa estar com o autosizemode definido como None
Lembre-se que o autosizemode pode ser também definido no nível da grid, dai a diferença entre definir o autoSizeMode como None ou como NotSet
Então no evento form_Closed podemos simplesmente alterar o autosizemode da comboboxcolumn e com isso passaremos a poder utilizar o autoSize enquanto que o erro desaparecerá.
Lembre-se que cada coluna da DataGridView possui um nome e é uma variável acessível por código. Veja como fica :
NomeDaSuaColuna.AutoSizeMode =DataGridViewAutoSizeColumnMode.None;
Fonte: www.bufaloinfo.com.br
Abraços
Tomás Vásquez
www.tomasvasquez.com.br
Obrigado, finalmente “descobri” o porquê do erro :S