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最大化问题依旧不能清除,问题还没解决。

 

你可能感兴趣的:(DevExpress问题积累:DocumentManager问题(续))