1

我正在使用 Dockpanel-suite,我基本上打开了 3 个表单。其中之一是“文档”表单,它可以打开多个文档,而其他两个表单是单个实例。

在某个阶段,我想找到并关闭一些文档表单。现在根据dockpanel-suite的文档它指出

从 DockPanel 中删除 DockContent 要从 DockPanel 中释放 DockContent,只需将 DockContent.DockHandler.DockPanel 设置为 null。

但是 DockHandler 是只读的,所以我不能将它设置为 null 那么如何找到我需要的文档并对它们执行操作,例如关闭它们?

目前我正在这样做;

foreach (DockContent dock in this.dockPanel1.Documents)
{
    if (dock.GetType() == typeof(FormQueryBuilder))
    {
        FormQueryBuilder qb = (FormQueryBuilder)dock;
        string number = qb.TabText.Replace("Query ", "");  //close all documents except those which start "Query 1"
        if (Convert.ToInt32(number) > 1)
        {
            dock.Close();
        }
    }
}

奇怪的是,如果我调用 dock.Close() 这将关闭文档,但如果在我的主(包含)表单的“FormClosing”事件期间调用它,那么它会停止关闭我的表单。似乎设置了一些值来取消它!

4

0 回答 0