diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index 3886bc1b..8dde5d65 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/SunnyUI/Controls/UITabControl.cs b/SunnyUI/Controls/UITabControl.cs index 7444adfa..1f427af2 100644 --- a/SunnyUI/Controls/UITabControl.cs +++ b/SunnyUI/Controls/UITabControl.cs @@ -65,6 +65,7 @@ namespace Sunny.UI timer.Tick += Timer_Tick; DisposeTabPageAfterRemove = true; + AutoClosePage = true; } private ConcurrentDictionary TipsTexts = new ConcurrentDictionary(); @@ -692,7 +693,7 @@ namespace Sunny.UI public event OnAfterRemoveTabPage AfterRemoveTabPage; - [DefaultValue(false)] + [DefaultValue(true)] [Description("多页面框架时,包含UIPage,在点击Tab页关闭时关闭UIPage"), Category("SunnyUI")] public bool AutoClosePage { @@ -714,19 +715,26 @@ namespace Sunny.UI } TabPage tabPage = TabPages[index]; - - if (AutoClosePage) + var pages = tabPage.GetControls(); + for (int i = 0; i < pages.Count; i++) { - var pages = tabPage.GetControls(); - for (int i = 0; i < pages.Count; i++) + if (AutoClosePage) { pages[i].Final(); pages[i].Dispose(); pages[i] = null; } + else + { + pages[i].Parent = null; + } + } + + if (TabCount > 1 && index > 0) + { + SelectedTab = TabPages[index - 1]; } - SelectedTab = TabPages[index > 0 ? index - 1 : 0]; TabPages.Remove(tabPage); AfterRemoveTabPage?.Invoke(this, index);