1

UltraTabPageControl をインフラジスティックス (C# Windows アプリケーション) の BaseForm にバインドしています。

ultraTabPageControl ウィンドウを閉じると、どのイベントがトリガーされますか?

明らかに baseform_closing を使用できますが、BaseForm にバインドするユーザーコントロールの数が多いため、このイベントでコードを記述する必要はありません。

ultraTabPageControl の close イベントでコードを記述する必要があります。

UltraTabPageControl の close イベントを処理する方法を教えてください。

4

1 に答える 1

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

ご覧のとおり、UltraTabControl とそのすべてのページは、FormClosing イベントを受け取ったときに引き続き使用できるはずです。基本プロパティ IsDisposed はその時点でまだ false である必要があるため、TabControl は「閉じられていません」

今、私は疑問を持っています.WinFormsアプリケーションについて話しているのですか?

于 2012-11-16T13:53:10.527 に答える