这让我很害怕,如果可能的话,我很乐意提供帮助。
我是一名 C# 开发人员,但必须在 VB.NET 中执行此操作。
因此 C# 答案也被接受。
我在表单上有一个选项卡控件。此控件中还没有任何选项卡。
加载表单时,它会加载一个“开始”页面。它添加选项卡“tbpStart”并将表单加载到选项卡页面“frmStart”。
在这个起始页上,我有很多单选按钮。当我单击一个单选按钮时,它应该在主窗体上加载其他选项卡。
问题是如何从另一个表单向一个表单的选项卡控件添加选项卡?
代码:
当主窗体加载时:
Try
'Load the Start Tab
Dim start As New frmTabStart
AddTabPage("Start", start)
Catch ex As Exception
PMComponentLibrary.PMMessageBox.ShowErrorMessage("Error occurred while trying to load the from.", ex)
End Try
主窗体上的函数:
Public Sub AddTabPage(tabPageName As String, myForm As System.Windows.Forms.Form)
Try
myForm.TopLevel = False
myForm.Dock = DockStyle.Fill
myForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Dim NewTab As New System.Windows.Forms.TabPage
NewTab.Name = "tab" + tabPageName
NewTab.Text = tabPageName
NewTab.Controls.Add(myForm)
tbcMain.TabPages.Add(NewTab)
myForm.Show()
Catch ex As Exception
Throw ex
End Try
End Sub
当我单击“开始表单”上的一个单选按钮时,它会在 click_event 上执行此操作:
If sender Is rdbWIPPostings Then
entity = New frmTabEntity()
mainForm.AddTabPage("Step 1", entity)
Application.DoEvents()
dte = New frmTabDate()
mainForm.AddTabPage("Step 2", dte)
wipSelect = New frmTabWIPSelect()
mainForm.AddTabPage("Step 3", wipSelect)
finish = New frmTabFinish()
mainForm.AddTabPage("Finish", finish)
End If
但选项卡不会添加到主窗体中。 我做错了什么?
最佳答案
修改 frmTabStart
的构造函数以接收 mainForm
的实例,如下所示:
public frmTabStart(MainForm mainForm)
{
// store that in a field
}
然后当您需要添加标签时:
_mainForm.AddTabPage(...);
关于c# - 从另一个窗体向 TabControl 添加选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19726416/