For some reason, the original .NET developers decided to flip the IsDisposed flag only if the available ToolStripItem has a non-null Owner property (which you indirectly set to null before). This, apparently, has no influence, i.e. You can assume that ToolStripItem safely deleted, despite this strange behavior.
As for your broader question - the IDisposable interface does not provide any way to check if an object has been deleted (and, even worse), classes implementing it should not guarantee perfect execution if it is called more than once (see MSDN )). You should rely on the developers of the specified classes to provide some information if the object was actually deleted (which, as you can see from the ToolStripItem example, is not a method of proving a fool) or track it somehow in your code.
Having said all this, it rarely becomes a problem in real-world scenarios (although it is useful to know about it).
decPL
source share