2012-06-05 92 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模型的視圖嗎? –

相關問題