Próbuję usunąć wszystkie elementy z ToolStripDropDownButton. Ponieważ są one jednorazowe, nazywam metodę dispose na każdym z nich. Ale widzę, że po wywołaniu metody dispose() właściwość IsDisposed nadal zwraca wartość false. Dlaczego tak jest i jak mogę sprawdzić, czy Dispose() jest wywoływana na dowolnym obiekcie? To nie jest problem (mam nadzieję) w moim obecnym projekcie, ale naprawdę chciałbym wiedzieć, co tu się dzieje ...Dlaczego IsDisposed zwraca false po wywołaniu Dispose()?
mój kod do tej pory:
private void ClearDropDownAccessConnections()
{
ToolStripItem button = null;
for (int i = toolStripDropDownButtonAccess.DropDownItems.Count - 1; i > 0; i--)
{
button = toolStripDropDownButtonAccess.DropDownItems[i] as ToolStripItem;
if ((button.Tag != null) && ((int)button.Tag == 10))
{
toolStripDropDownButtonAccess.DropDownItems.Remove(button);
button.Dispose();
//IF I CHECk HERE THEN button.IsDisposed IS STILL FALSE }
}
}
ToolStripItems to elementy "szczupłe", nie używają okna. I nie wywodzą się z klasy Control. To często oznacza, że w rzeczywistości nie mają niczego wartego wyrzucenia. Sprawia, że są one dość błędne. –
[Więcej informacji na temat 'IDisposable'] (http://stackoverflow.com/a/538238/2478357). – Loetn