我在Infragistics(C#Windows应用程序)中将UltraTabPageControl绑定到BaseForm。
关闭ultraTabPageControl窗口时会触发哪个事件?
显然可以使用baseform_closing,但我不需要在此事件中编写代码,因为绑定到BaseForm的用户控件数量更多。
我需要在ultraTabPageControl的close事件上写一段代码。
请告诉我如何处理UltraTabPageControl的关闭事件。
答案 0 :(得分:1)
UltraTabControl有TabClosed
和TabClosing
个事件
这些事件与关闭托管UltraTabPageControl的UltraTab有关。
事件处理程序接收类型为TabClosingEventArgs
或TabClosedEventArgs
的参数,其中包含与此事件相关的数据。
每个UltraTab都记录在UltraTabConrol的Tabs集合中。每个UltraTab都有UltraTabPageControl
我认为与标准Windows选项卡控件的这些差异是由于存在“共享页面”,其中托管的控件在每个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仍应为false,因此没有TabControl'关闭'
现在我有疑问 - 我们正在讨论WinForms应用程序吗?