【问题标题】:Close two open forms together in a Winforms application在 Winforms 应用程序中一起关闭两个打开的表单
【发布时间】:2014-04-27 11:26:27
【问题描述】:

我正在开发一个 Windows 窗体应用程序

在父表单中,我同时打开两个表单 - FrmrecievedDelivaryRequestFrmReleasedInPodium

在父表单中,我打开了两个这样的表单:

frm1 = New FrmrecievedDelivaryRequest
frm1.Location = New Point(375, 0)
frm1.MdiParent = Me
frm1.Show()

frm6 = New FrmReleasedInPodium
frm6.Location = New Point(809, 0)
frm6.MdiParent = Me
frm6.Show()

FrmReleasedInPodium我有一个关闭按钮。

单击关闭按钮时,我必须关闭两个表单,因此我编写了以下代码:

  Me.Close()
  Dim form2 = New FrmrecievedDelivaryRequest()
  form2.Close()

但这不是关闭我的FrmrecievedDelivaryRequest,只是关闭FrmReleasedInPodium

单击关闭按钮时,我必须关闭两个表单。我该怎么做?

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

    您正在创建FrmrecievedDelivaryRequest 的新实例,然后立即关闭它。该新实例与您在第一个表单中创建的原始实例无关。

    要关闭两者,您必须将对原始 FrmrecievedDelivaryRequest 的引用传递给您的 FrmReleasedInPodium 实例。


    FrmrecievedDelivaryRequest 的实例传递给FrmReleasedInPodium

    frm6 = New FrmReleasedInPodium(frm1)
    frm6.Location = New Point(809, 0)
    frm6.MdiParent = Me
    frm6.Show()
    

    然后在FrmReleasedInPodium中引用它:

    Public Class FrmReleasedInPodium
    
        private frmRDR as FrmrecievedDelivaryRequest
    
        Public Sub New(ByVal frmRDR As FrmrecievedDelivaryRequest)
            InitializeComponent
            Me.frmRDR = frmRDR
        End Sub
    
    End Class
    

    【讨论】:

    • 先生,那你为什么要通过 frm1
    • 先生,看看你的代码..你把它命名为:frmRDR right
    • 我在传递 frm1 时出错 :frm6 = New FrmReleasedInPodium(frm1)
    • 在关闭按钮中我添加了如下代码:me.close() frmRDR.Close() 但在到达 frmRDR.Close() 时出错
    • 是的,我正在放置代码 FrmReleasedInPodium 错误:对象引用未设置为对象的实例。
    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多