2012-06-05 94 views
0

我在Windows窗体应用程序中遇到了一些麻烦。我有2种形式:如何在单击父窗体时关闭子窗体?

1主/父窗体

第二子/子窗体(菜单)

问题:

我想结束我的第二个表(其中1日的顶部打开当我点击第一张表格时)。

+0

细说乌尔问题。在那里张贴一些代码.. –

回答

1

您可以到主窗体“焦点”事件注册(此链接是一个基本的教程,展示了如何在VB中注册事件:http://www.homeandlearn.co.uk/net/nets10p1.html

当事件发生时,你将不得不检查第二种形式是打开的(保存对已打开表单的引用,以便您可以这样做),然后关闭它。

如果当u显示你的孩子形式,将添加一些代码,我就可以更具体...

+0

我的表单是模型表单。父窗体在子窗体打开时直到用户单击确定或取消子窗体中的按钮(意味着我们必须关闭子窗体以激活父窗体)才会停用。和表单激活在这种情况下不起作用。 – Kashif

+0

所以,你可以注册到子窗体“失去焦点”事件 - http://msdn.microsoft.com/en-us/library/system.windows.forms.control.lostfocus.aspx和只写“this.Close ();” (在VB语法思想)。 你甚至可以控制如何关闭表单(DialogResult的值)关闭它之前子窗体打开时和 – eyossi

0

u有救子形式在家长形式的变量。父形式上点击一下,你可以使用变量来关闭或处置您的孩子形式

1

像这样的东西应该工作:

Public Class Form1 
    Private childForm As Form2 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     childForm = New Form2() 
     childForm.Show() 
    End Sub 

    Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated 
     If childForm IsNot Nothing Then 
      childForm.Hide() 
     End If 
    End Sub 
End Class 
+0

父窗体被停用,直到用户点击确定或子窗体取消按钮(意味着我们不得不关闭子窗体激活父窗体)。和表单激活在这种情况下不起作用。 – Kashif

+0

我的表单是模型表单。 – Kashif

+0

我很困惑。我以为你说过,当你点击父母时,你希望孩子的形式消失,但现在你告诉我你根本不能点击父母。我没有关注你的实际问题。我怀疑你有多个问题,你一起模糊,它变得混乱。我不知道你的意思是“模特形式”。你的意思是一种MVC模型的视图吗? –

相关问题