C# 关于tab控件和表单

C# 关于tab控件和表单,c#,.net,winforms,C#,.net,Winforms,我已经在windows窗体中开发了一个应用程序。但现在我被告知要将其放在选项卡式页面中。我面临的问题是如何在选项卡式控件中插入窗体。如果不可能,我可以做什么。我需要在页面(或窗体)之间导航,并且在导航时数据应该是持久的 有没有办法在选项卡控件中插入表单? 即使有可能,表单也不应该看起来像表单,而应该像页面。 请帮帮我 提前谢谢 sri。尝试使用第一个应用程序中的所有逻辑和表单创建一个UserControl,并将其放在第二个应用程序的主表单中使用 制作用户控件应该没有那么难,你可以从旧应用程序复制

我已经在windows窗体中开发了一个应用程序。但现在我被告知要将其放在选项卡式页面中。我面临的问题是如何在选项卡式控件中插入窗体。如果不可能,我可以做什么。我需要在页面(或窗体)之间导航,并且在导航时数据应该是持久的

有没有办法在选项卡控件中插入表单? 即使有可能,表单也不应该看起来像表单,而应该像页面。 请帮帮我

提前谢谢
sri。

尝试使用第一个应用程序中的所有逻辑和表单创建一个UserControl,并将其放在第二个应用程序的主表单中使用

制作用户控件应该没有那么难,你可以从旧应用程序复制粘贴控件


不确定这是否有帮助,但我希望有帮助

尝试使用第一个应用程序中的所有逻辑和表单创建一个UserControl,并将其放到第二个应用程序的主表单中使用

form1.TopLevel = false;
form1.FormBorderStyle = FormBorderStyle.None;//this is not compulsary
this.tabPage1.Controls.Add(form1);
form1.Show();
制作用户控件应该没有那么难,你可以从旧应用程序复制粘贴控件


不确定这是否有帮助,但我希望有帮助

好的,我上面的那个人是对的,但有一点需要澄清。您正在将控件添加到选项卡页面中,而不是添加到选项卡控件中。他写得对,但我解释错了。不要试图将此添加到设计器代码中,任何更改都会破坏顺序,并且不会起作用。只需将其添加到Form.Load事件中

form1.TopLevel = false;
form1.FormBorderStyle = FormBorderStyle.None;//this is not compulsary
this.tabPage1.Controls.Add(form1);
form1.Show();
Friend WithEvents panelForm1 As panelForm

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            '
            'panelForm1
            '
            Me.panelForm1 = New ValidZoneExtracurricularTasks.SyncForm
            Me.panelForm1.ClientSize = New System.Drawing.Size(673, 228)
            Me.panelForm1.Dock = System.Windows.Forms.DockStyle.Fill
            Me.panelForm1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
            Me.panelForm1.Location = New System.Drawing.Point(3, 3)
            Me.panelForm1.Name = "panelForm1"
            Me.panelForm1.Text = "panelForm1"
            Me.panelForm1.Visible = False
            Me.panelForm1.Dock = DockStyle.Fill
            Me.panelForm1.TopLevel = False

            Me.tpgSync.Controls.Add(Me.SyncForm1)
            Me.SyncForm1.Show()
        Catch ex As Exception

        End Try
    End Sub

如果您打算尝试使用它,这应该会对您有所帮助。请阅读它们,因为它们不太容易使用。

好的,我上面的人是对的,但有一点需要澄清。您正在将控件添加到选项卡页面中,而不是添加到选项卡控件中。他写得对,但我解释错了。不要试图将此添加到设计器代码中,任何更改都会破坏顺序,并且不会起作用。只需将其添加到Form.Load事件中

Friend WithEvents panelForm1 As panelForm

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            '
            'panelForm1
            '
            Me.panelForm1 = New ValidZoneExtracurricularTasks.SyncForm
            Me.panelForm1.ClientSize = New System.Drawing.Size(673, 228)
            Me.panelForm1.Dock = System.Windows.Forms.DockStyle.Fill
            Me.panelForm1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
            Me.panelForm1.Location = New System.Drawing.Point(3, 3)
            Me.panelForm1.Name = "panelForm1"
            Me.panelForm1.Text = "panelForm1"
            Me.panelForm1.Visible = False
            Me.panelForm1.Dock = DockStyle.Fill
            Me.panelForm1.TopLevel = False

            Me.tpgSync.Controls.Add(Me.SyncForm1)
            Me.SyncForm1.Show()
        Catch ex As Exception

        End Try
    End Sub
这应该会帮助您,如果您要尝试在userControls上读取它,那么userControls会对您有所帮助,因为它们不是那么容易使用