Sto tentando di cancellare tutti gli elementi da un oggetto ToolStripDropDownButton. Dato che sono monouso, chiamo il metodo di smaltimento su ognuno di essi. Ma vedo che dopo aver chiamato il metodo dispose(), la proprietà IsDisposed restituisce ancora false. Perché è così e come posso verificare se Dispose() è chiamato su qualsiasi oggetto? Non è un problema (spero) nel mio progetto attuale, ma mi piacerebbe davvero sapere cosa sta succedendo qui ...Perché IsDisposed restituisce false dopo aver chiamato Dispose()?
mio codice finora:
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 sono controlli "snelli", non utilizzano una finestra. E non derivare dalla classe Control. Ciò significa spesso che in realtà non hanno nulla che valga la pena smaltire. Li rende anche molto buggy. –
[Ulteriori informazioni su 'IDisposable'] (http://stackoverflow.com/a/538238/2478357). – Loetn