DockContent.DockHandler.DockPanel только для чтения
Я использую Dockpanel-suite, и у меня в основном открыто 3 формы. Одной из них является форма "Документ", в которой может быть открыто несколько документов, тогда как две другие формы являются единичными экземплярами.
На каком-то этапе я хочу найти и закрыть некоторые формы документов. Теперь согласно документации для DockPanel-Suite это гласит
Удаление DockContent из DockPanel Чтобы освободить DockContent из DockPanel, просто установите для DockContent.DockHandler.DockPanel значение null.
Но DockHandler доступен только для чтения, поэтому я не могу установить его в ноль. Как я могу найти нужные мне документы и выполнить над ними какие-либо действия, например закрыть их?
На данный момент я делаю это;
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" моей основной (содержащей) формы, то он останавливает закрытие моей формы. Похоже, устанавливается какое-то значение, чтобы отменить это!