首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabControl in TabPage

TabControl in TabPage
EN

Stack Overflow用户
提问于 2014-02-01 15:53:20
回答 1查看 1.6K关注 0票数 2

我遇到了以下问题:我将动态创建的TabControl添加到一个表页(也是动态创建的)。当我尝试添加另一个带有另一个选项卡控件的表页时,它的作用就好像没有新的TabControl添加到新的TabPage中一样。事实上,它并没有增加任何东西。我该怎么办?下面是我创建TabPage的代码

代码语言:javascript
复制
    Dim tbstate As New TabPage
    tbstate.ContextMenuStrip = QuestEd.cmsState
    tbstate.Text = String.Format("State: {0}", txtState.Text)
    QuestEd.TabControl1.TabPages.Add(tbstate)
    txtState.Text = Nothing
    tbstate.Select()
    QuestEd.RefreshData()
    Me.Dispose()

下面是我为这个TabControl创建一个新TabPage的代码

代码语言:javascript
复制
Public newtab As New TabControl
     ...
            If QuestEd.TabControl1.SelectedTab.Controls.Count = 0 Then
                newtab.Parent = QuestEd.TabControl1.SelectedTab
                newtab.Dock = DockStyle.Fill
                QuestEd.TabControl1.SelectedTab.Controls.Add(newtab)
                QuestEd.TabControl1.SelectedTab.Refresh()
                newtab.TabPages.Add(String.Format("When: {0}", typ))
            Else
                newtab.TabPages.Add(String.Format("When: {0}", typ))
            End If

我做错什么了?有人能给我建议怎么修吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-01 16:17:57

刚对你的代码进行了快速测试。我猜,因为您的新选项卡上有公共可见性,所以您在类级别声明它。您的代码确实有效,它确实在TabControl上添加了一个新的TabPage。在阅读Hans的评论时,他很可能是正确的,如果您使用的是表单的类名而不是实例名,那么您将什么也看不到。如果试图从另一个窗体中添加这些控件,则需要传递要将其添加到的窗体的实例。没有看到你是如何构造你的项目的,这只是一个疯狂的猜测。

我的例子:

代码语言:javascript
复制
Public Class Form1
    Dim newtab As New TabControl
    Dim typ As String = "Hello"
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim tbstate As New TabPage
        Dim tbstate1 As New TabPage
        tbstate.Text = String.Format("State: {0}", "My Test")
        TabControl1.TabPages.Add(tbstate)
        TabControl1.TabPages.Add(tbstate1)
        tbstate.Select()

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If TabControl1.SelectedTab.Controls.Count = 0 Then
            newtab = New TabControl
            newtab.Parent = TabControl1.SelectedTab
            newtab.Dock = DockStyle.Fill
            TabControl1.SelectedTab.Controls.Add(newtab)
            TabControl1.SelectedTab.Refresh()
            newtab.TabPages.Add(String.Format("When: {0}", typ))
        Else
            DirectCast(TabControl1.SelectedTab.Controls(0), TabControl).TabPages.Add(New TabPage(String.Format("When: {0}", typ)))            End If
    End Sub
End Class
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21500198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档