我在基础架构(C# Windows 应用程序)中将 UltraTabPageControl 绑定到 BaseForm。
当我关闭 ultraTabPageControl 窗口时会触发哪个事件?
显然可以使用 baseform_closure ,但我不需要在这个事件中编写我的代码,因为绑定到 BaseForm 的用户控件的数量更多。
我需要在 ultraTabPageControl 的关闭事件上编写一段代码。
请让我知道如何处理 UltraTabPageControl 的关闭事件。
我在基础架构(C# Windows 应用程序)中将 UltraTabPageControl 绑定到 BaseForm。
当我关闭 ultraTabPageControl 窗口时会触发哪个事件?
显然可以使用 baseform_closure ,但我不需要在这个事件中编写我的代码,因为绑定到 BaseForm 的用户控件的数量更多。
我需要在 ultraTabPageControl 的关闭事件上编写一段代码。
请让我知道如何处理 UltraTabPageControl 的关闭事件。
UltraTabControl 有一个TabClosed
和TabClosing
事件。
这些事件与托管 UltraTabPageControl 的 UltraTab 的关闭有关。
事件处理程序接收类型参数TabClosingEventArgs
或TabClosedEventArgs
包含与此事件相关的数据。
每个 UltraTab 都记录在 UltraTabConrol 的 Tabs 集合中。每个 UltraTab 都有自己的 UltraTabPageControl
我认为与标准窗口选项卡控件的这些差异是由于存在“共享页面”,其中托管的控件在每个 UltraTabPageControl 上都可见
代码示例更好地解释了层次结构
// Call BeginUpdate to prevent the display from
// refreshing as we add individual tabs.
// Note: This MUST be paired with a call to
// EndUpdate below.
this.ultraTabControl1.BeginUpdate();
UltraTab tabAdded;
UltraTabsCollection tabs = this.ultraTabControl1.Tabs;
// Add a tab to the Tabs collection
tabAdded = tabs.Add("options", "&Options");
// Create a new control
TextBox tb = new TextBox();
tb.Location = new Point(20,20);
tb.Size = new Size(80, 20);
// Add the control to the tab's tab page
tabAdded.TabPage.Controls.Add(tb );
// Call EndUpdate to allow the display to refresh
this.ultraTabControl1.EndUpdate();
编辑:
当您关闭应用程序的主窗体时,框架调用的事件顺序如下:
MAINFORM - FormClosing
MAINFORM - FormClosed
MAINFORM - Deactivate
MAINFORM - HandleDestroyed
CONTROL - HandleDestroyed
.... - repeat for each control
CONTROL - Disposed
.... - repeat for each control
MAINFORM - Disposed
如您所见,当您收到 FormClosing 事件时,UltraTabControl 及其所有页面应该仍然可用。基本属性 IsDisposed 在那个时候应该仍然是假的,因此没有 TabControl 被“关闭”
现在我有一个疑问 - 我们正在谈论 WinForms 应用程序,对吗?