TabController控件测试

本文介绍如何使用 VB.NET 对 TabControl 进行自定义操作,包括实现拖拽标签的功能以及双击关闭标签的方法。通过提供的代码示例,读者可以了解到如何监听 TabControl 的鼠标事件来实现标签的拖拽,并利用 ClosePressed 和 DoubleClickTab 事件进行标签关闭和双击响应。

下载及安装参照:http://www.cnblogs.com/dragon/archive/2005/03/24/124771.html

测试:拖动标签、双击关闭标签

 '关闭按钮触发
    Private Sub TabController_ClosePressed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabController.ClosePressed
        MsgBox("ClosePressed--" & TabController.SelectedTab.Name.ToString)
    End Sub



    'Tab Drag and Drop
    Dim TabDragging As Boolean

    Private Sub TabController_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabController.MouseLeave
        If TabDragging = True Then
            'Debug.Print("stop drag")
            TabDragging = False
            Me.Cursor = Cursors.Default
        End If
    End Sub

    Private Sub TabController_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabController.MouseMove
        If e.Button = Windows.Forms.MouseButtons.Left Then
            'Debug.Print("dragging")
            TabDragging = True
            Me.Cursor = Cursors.SizeWE
        ElseIf e.Button = Windows.Forms.MouseButtons.None Then
            If TabDragging = True Then
                'Debug.Print("stop drag")
                TabDragging = False
                Me.Cursor = Cursors.Default
            End If
        End If
    End Sub

    Private Sub TabController_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabController.MouseUp
        If e.Button = Windows.Forms.MouseButtons.Left Then
            If TabDragging = True Then
                Dim sourceTab As Crownwood.Magic.Controls.TabPage = TabController.SelectedTab
                Dim targetTab As Crownwood.Magic.Controls.TabPage = TabController.TabPageFromPoint(e.Location)
                Dim targetIndex As Integer = -1

                For i = 0 To TabController.TabPages.Count - 1
                    If TabController.TabPages(i) Is targetTab Then
                        targetIndex = i
                    End If
                Next

                If sourceTab IsNot targetTab And targetIndex > -1 Then
                    TabController.TabPages.Remove(sourceTab)
                    TabController.TabPages.Insert(targetIndex, sourceTab)
                    TabController.SelectedTab = sourceTab
                End If
            End If
        ElseIf e.Button = Windows.Forms.MouseButtons.Middle Then
            If TabDragging = False Then
                '   Tabs.Action.CloseActiveTab()
            End If
        End If
    End Sub


    '双击标签触发
    Public Sub TabController_DoubleClickTab(ByVal sender As Crownwood.Magic.Controls.TabControl, ByVal page As Crownwood.Magic.Controls.TabPage) Handles TabController.DoubleClickTab
        MsgBox("DoubleClickTab--" & page.Name.ToString)
    End Sub

 

转载于:https://www.cnblogs.com/LCX/archive/2010/09/05/1818628.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值