【问题标题】:How To: Hide and Show Tap Pages Using Vb.Net如何:使用 Vb.Net 隐藏和显示 Tap 页面
【发布时间】:2020-12-14 14:29:47
【问题描述】:

我试图在加载表单时隐藏 TapPage2 和 TapPage3,并在选中 CheckBox1 时尝试将它们显示回来。我可以使用下面的代码隐藏点击页面,但是当我单击复选框时,我得到“System.ArgumentNullException:'值不能为空。”错误信息。我该怎么办?

这里是删除代码:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    If Not IsNothing(TabControl1.TabPages("TabPage2")) Then

        TabControl1.TabPages.Remove(TabControl1.TabPages("TabPage2"))

    End If

    If Not IsNothing(TabControl1.TabPages("TabPage3")) Then

        TabControl1.TabPages.Remove(TabControl1.TabPages("TabPage3"))

    End If

End Sub

添加代码如下:

 Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged

      TabControl1.TabPages.Add(TabControl1.TabPages("TabPage2"))
      TabControl1.TabPages.Add(TabControl1.TabPages("TabPage3"))

 End Sub

源代码:http://vbcity.com/blogs/xtab/archive/2014/08/20/windows-forms-how-to-hide-a-tab-page.aspx

【问题讨论】:

  • 通常情况下,我不会对拼写发表评论(我的拼写很糟糕,英语是我的母语),但是当您搜索它是 Tab 控件和 Tab 页时,它可能会有所帮助。那就是以“b”结尾。

标签: .net vb.net winforms


【解决方案1】:

想想这实际上做了什么(或试图做什么):

TabControl1.TabPages.Add(TabControl1.TabPages("TabPage2"))

您告诉它转到TabControl 并获取名为“TabPage2”的TabPage,然后将TabPage 添加到TabControl。这有什么意义?首先,如果您可以从TabControl 获得TabPage,那么您为什么需要添加它?它已经在那里了。其次,你一开始就把它拿掉了,所以它不在里面,那你怎么从那里得到它呢?

停止按名称引用 TabPages 并使用设计器为它们生成的字段,就像使用 TabControl 的字段一样:

TabControl1.TabPages.Add(TabPage2)

删除它们时也应该这样做。另外,摆脱那个愚蠢的条件代码。如果您自己添加了TabPages,这些引用怎么可能是Nothing

TabControl1.TabPages.Remove(TabPage2)
TabControl1.TabPages.Remove(TabPage3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多