用户有意更改选项卡时的 TabCard 事件

TabCard event when a user has the intent to change tab

可能是一个简单的事件,但无法找出正确的事件:

我有一个 vb.net WinForm 和一个 TabControl。在每个 TabPage 上,用户可以 enter/modify 一些数据然后(希望)保存它。

为了保持整洁,我想在用户更改选项卡时检查是否有未保存的数据(如果未保存,则将其删除)。

我正在寻找 TabCard 的最佳活动。 TabControl1.Selecting.SelectedIndexChanged.Selected 看起来很有希望,但它们都在 选项卡更改后触发。
如果用户想要 return 保存数据,我需要弄清楚他来自哪里并再次显示 TabPage。此外,该事件将再次引发火灾 - 不可行。

结论:我正在寻找一个 TabControl 事件,该事件在用户单击另一个标签卡之后但在卡片实际更改之前触发...
或者用另一种方式解决这个问题更好的主意。

使用选择事件。如果不想更换标签页,可以取消活动。

'Here's an example class with a tabControl
Public Class Form1

    'this variable stores the currently selected tab
    Private activeTab As TabPage

    'this initializes the activeTab variable
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        activeTab = TabControl1.SelectedTab
    End Sub

    'This checks to see if the tab should change or not
    Private Sub TabControl1_Selecting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting

        If (MessageBox.Show(String.Format("Return to {0} tab?", activeTab.Name), "TabControl", MessageBoxButtons.OKCancel) = Windows.Forms.DialogResult.OK) Then
            e.Cancel = True
        Else
            activeTab = e.TabPage
        End If

    End Sub

End Class