C# 从其他窗体向TabControl添加选项卡
这让我很害怕,如果可能的话,我会非常感谢你的帮助 我是一名C#开发人员,但必须在VB.NET中完成这项工作 所以C#答案也被接受C# 从其他窗体向TabControl添加选项卡,c#,vb.net,forms,tabs,C#,Vb.net,Forms,Tabs,这让我很害怕,如果可能的话,我会非常感谢你的帮助 我是一名C#开发人员,但必须在VB.NET中完成这项工作 所以C#答案也被接受 我在表单上有一个选项卡控件。此控件中还没有任何选项卡 当表单加载时,它将加载一个“开始”页面。它添加选项卡“tbpStart”并将表单加载到选项卡页面“frmStart”上 在这个起始页上,我有许多单选按钮。当我点击一个单选按钮时,它会加载主窗体上的其他选项卡 问题是如何从另一个窗体向一个窗体的选项卡控件添加选项卡 代码: 加载主窗体时: Try 'Loa
- 我在表单上有一个选项卡控件。此控件中还没有任何选项卡
- 当表单加载时,它将加载一个“开始”页面。它添加选项卡“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
当我点击“开始表单”上的一个单选按钮时,它会在点击事件中执行此操作:
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
但是选项卡不会添加到主窗体中。
我做错了什么?修改
frmdabstart
的构造函数以接收mainForm
的实例,如下所示:
public frmTabStart(MainForm mainForm)
{
// store that in a field
}
然后,当您需要添加选项卡时:
_mainForm.AddTabPage(...);
您从哪里获得的
mainForm
?mainForm是子表单上父表单的实例。让我重新表述我的问题。您如何设置mainForm
?是否使用this
将其注入子窗体的构造函数?是否将mainForm作为byRef传递给Startform构造函数?或者你是从另一个地方来的。我猜主窗体引用与您在屏幕上看到的引用不同。问题不在主窗体上。表格如图所示。在Load_事件中,它调用我的第一个代码块。MainForm还包含第二个代码块,它是一个void函数(Sub)。这将在加载时添加选项卡,并将启动表单添加到新选项卡。这很有效。问题出现在作为控件添加到选项卡页的窗体上。。。从这个子表单我想添加更多的标签到主表单。这是修复。。。可悲的是我没有先尝试这个。。。多谢各位@Neoistheone@FrederikMoller,没问题!我很高兴能帮上忙!