【发布时间】:2014-05-07 10:22:55
【问题描述】:
我正在尝试清除 ToolStripDropDownButton 中的所有项目。 由于它们是一次性的,因此我对它们中的每一个都调用了 dispose 方法。 但是我看到调用 dispose() 方法后,IsDisposed 属性仍然返回 false。 为什么会这样,我如何检查是否在任何对象上调用了 Dispose()? 在我当前的项目中(我希望)这不是问题,但我真的很想知道这里发生了什么......
到目前为止我的代码:
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 }
}
}
【问题讨论】:
-
ToolStripItem 是“精简”控件,它们不使用窗口。并且不要从 Control 类派生。这通常意味着他们实际上没有任何值得处理的东西。让他们也很麻烦。