天天看点

System.Windows.Forms.TabControl控件有关

发现学生们特别喜欢用TabControl控件,问过之后才知道,原来他们觉得这个控件看上去比较酷,难怪现在标签式浏览器这么受欢迎。既然喜欢,咱就投其所好,赶紧做了一点教学示例。

这里演示了TabControl的常用事件:SelectedIndexChanged

Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged

                lbMessage.Text = "当前显示的是第" & (TabControl1.SelectedIndex + 1) & "页"

End Sub

用编程的方式添加新页

Sub btAdd_Click() Sub btAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAdd.Click

        TabControl1.TabPages.Add(New TabPage("新页"))

用编程的方式删除选中的页

Sub btDel_Click() Sub btDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btDel.Click

        TabControl1.TabPages.RemoveAt(TabControl1.SelectedIndex)

向前移动某一页

Sub btLeft_Click() Sub btLeft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btLeft.Click

        Dim selectedIndex As Integer = TabControl1.SelectedIndex

        If (selectedIndex = 0) Then

                Return '如果是第一页,就不需要向左移动了

        Else

                Dim selectedTab As TabPage = TabControl1.SelectedTab        '暂存选中的TabPage

                TabControl1.TabPages.Remove(selectedTab)                                '从现在的位置移除

                TabControl1.TabPages.Insert(selectedIndex - 1, selectedTab) '添加到前一个位置(前面的那个TabPage会自动向后移动)

        End If

向后移动某一页

Sub btRight_Click() Sub btRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btRight.Click

        If (selectedIndex = TabControl1.TabPages.Count - 1) Then

                Return '如果是最后一页,就不需要向右移动了

'暂存选中的TabPage

                Dim selectedTab As TabPage = TabControl1.SelectedTab        

'从现在的位置移除(前面的那个TabPage会自动向前移动)

                TabControl1.TabPages.Remove(selectedTab) 

                TabControl1.TabPages.Insert(selectedIndex + 1, selectedTab) '添加到后一个位置

在移动Tab页时,除了注意判断移动边界外,还要注意先保持要移动的Tab页,先移除,后添加。这需要将该TabPage理解为按引用传递的对象。

除了WindowsForm程序中的TabControl外,在其他组件中也可能碰到其它的TabControl,比如AJAX控件包中的TabControl,WPF中的WebControl等,都可以借鉴这一思路进行编程。

本文转自 王杰瑞 51CTO博客,原文链接:http://blog.51cto.com/wangjierui/107444,如需转载请自行联系原作者