DevExpress问题积累:DocumentManager问题(续)
最近测试时,又发现了一个问题:
通过代码对DmUvw已经加载的Documents和FloatDocuments清除时,如果某个Document已经最大化,或者Document通过界面操作更改为FloatDocument时,再通过以下方法清除:
DmUvw.Documents.Clear(); DmUvw.FloatDocuments.Clear();
方法执行之后,界面上Document无法清除,且Document无法继续操作,估计是这个清除方法本身bug。
解决办法:
List<BaseDocument> listTemp = new List<BaseDocument>(); listTemp.AddRange(DmUvw.View.FloatDocuments); listTemp.AddRange(DmUvw.View.Documents); foreach (BaseDocument bd in listTemp) { bd.Form.Close(); } DmUvw.Documents.Clear(); DmUvw.FloatDocuments.Clear();
注意:
1、Documents的Form.Close()会关联DocumentClosed事件,而FloatDocuments的Form.Close()不会关联该事件。
2、Document最大化问题依旧不能清除,问题还没解决。