diff --git a/DarkUI/Docking/DarkDockContent.cs b/DarkUI/Docking/DarkDockContent.cs index e769bc1..23bb3e2 100644 --- a/DarkUI/Docking/DarkDockContent.cs +++ b/DarkUI/Docking/DarkDockContent.cs @@ -8,6 +8,12 @@ namespace DarkUI.Docking [ToolboxItem(false)] public class DarkDockContent : UserControl { + #region Event Handler Region + + public event EventHandler DockTextChanged; + + #endregion + #region Field Region private string _dockText; @@ -28,7 +34,8 @@ namespace DarkUI.Docking _dockText = value; - // todo: trigger tabs to re-calculate in parent group + if (DockTextChanged != null) + DockTextChanged(this, null); Invalidate(); } diff --git a/DarkUI/Docking/DarkDockGroup.cs b/DarkUI/Docking/DarkDockGroup.cs index 0a15df3..74665b6 100644 --- a/DarkUI/Docking/DarkDockGroup.cs +++ b/DarkUI/Docking/DarkDockGroup.cs @@ -68,6 +68,8 @@ namespace DarkUI.Docking _contents.Add(dockContent); Controls.Add(dockContent); + dockContent.DockTextChanged += DockContent_DockTextChanged; + _tabs.Add(dockContent, new DarkDockTab(dockContent)); if (VisibleContent == null) @@ -96,6 +98,8 @@ namespace DarkUI.Docking _contents.Remove(dockContent); Controls.Remove(dockContent); + dockContent.DockTextChanged -= DockContent_DockTextChanged; + if (_tabs.ContainsKey(dockContent)) _tabs.Remove(dockContent); @@ -514,6 +518,11 @@ namespace DarkUI.Docking Invalidate(); } + private void DockContent_DockTextChanged(object sender, EventArgs e) + { + Invalidate(); + } + #endregion #region Render Region diff --git a/Example/Forms/MainForm.cs b/Example/Forms/MainForm.cs index 64baf7d..a74d75a 100644 --- a/Example/Forms/MainForm.cs +++ b/Example/Forms/MainForm.cs @@ -213,7 +213,7 @@ namespace Example DockPanel.AddContent(content); } } - + private DarkDockContent GetContentBySerializationKey(string key) { foreach (var window in _toolWindows)