UltraTabPageControl窗口关闭时会触发哪个事件

时间:2012-11-16 13:17:22

标签: c# winforms infragistics

我在Infragistics(C#Windows应用程序)中将UltraTabPageControl绑定到BaseForm。

关闭ultraTabPageControl窗口时会触发哪个事件?

显然可以使用baseform_closing,但我不需要在此事件中编写代码,因为绑定到BaseForm的用户控件数量更多。

我需要在ultraTabPageControl的close事件上写一段代码。

请告诉我如何处理UltraTabPageControl的关闭事件。

1 个答案:

答案 0 :(得分:1)

UltraTabControl有TabClosedTabClosing个事件 这些事件与关闭托管UltraTabPageControl的UltraTab有关。

事件处理程序接收类型为TabClosingEventArgsTabClosedEventArgs的参数,其中包含与此事件相关的数据。

每个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应用程序吗?