none
请教Tabcontrol控件Selecting和Selected事件

    问题

  • 一个Tabcontrol1控件,它们有两个选项卡,为何下面的代码会出现两次消息框呢?selecting事件也是如此。请问

    怎样才能让它只出现一次?

        Private Sub Tabcontrol1_Selected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles Tabcontrol1.Selected
            MessageBox.Show("Hello!")
        End Sub


    2016年12月9日 5:34

答案

  • Hi leon1526,

    因为Selected事件被注册以后,你每次点击tab control,就必须回触发这个事件。所以就会显示2次。如果你想用这个事件,并且只触发一次,可以使用下面的代码

    你可以参考下面的代码:

        Static Dim he As Boolean
            If (he = 0) Then
                MessageBox.Show("Hello!")
                he += 1
            End If

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2016年12月9日 8:44
    版主

全部回复

  • 应该是增加事件TabIndexChanged,而不是事件Selecting和Selected事件

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月9日 8:35
  • Hi leon1526,

    因为Selected事件被注册以后,你每次点击tab control,就必须回触发这个事件。所以就会显示2次。如果你想用这个事件,并且只触发一次,可以使用下面的代码

    你可以参考下面的代码:

        Static Dim he As Boolean
            If (he = 0) Then
                MessageBox.Show("Hello!")
                he += 1
            End If

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2016年12月9日 8:44
    版主
  • 因为我真正要做的是在选择选项卡时判断Form内的内容有无完成,如果未完成就停留在当前的选项卡,所以TabIndexChanged可能不太合适
    2016年12月9日 9:04
  • Thank you,Hart.
    2016年12月9日 9:15