2014-07-02 57 views
1

我嘗試使用2個表單時遇到以下情況。我的工作流程如下: (1)負載Form1中vb.net使用表單上的按鈕打開另一個表單,不起作用

(2)如果在Form1單擊Button,然後關閉Form1和開放窗口2

(溶液A),如果我使用以下代碼:

Dim oForm As New Form2 

    oForm.ShowDialog() 

    Me.Close() 

然後Form1中將窗體2(Form1中仍然打開)

(溶液b),如果我使用下面的代碼下:

Dim oForm As New Form2 

    oForm.Show() 

    Me.Close() 

然後Form1關閉和Form2打開,但Form1不在頂層。

我已經看過解決方案,大多數提出解決方案b,但對於我來說,這兩種解決方案都不能按照我的要求工作。任何人都可以告訴我原因?

+0

Load事件你構建一個登錄對話? –

+0

在登錄場景中查看我的回答 –

+0

我覺得我們需要播放20個問題才能找出有關您嘗試的重要信息。您需要付出一些努力來創建一個能夠證明您的問題或發佈您正在使用的代碼的示例。 –

回答

0

使用form.bringtofront()如果你想看到在前面開口的形式,我爲小糊塗雖然關於什麼你正在嘗試做的

+0

嗨,通過使用此,Form1關閉,Form2未打開。 – user30643

+0

如果您使用Dim formsecond作爲新的Form2()formsecond.show()formsecond.bringtofront()me.hide()或me.close(),它應該工作,我不明白爲什麼它不會工作 – user3758070

0

嘗試做這種方式:

Dim oForm As New Form2() 

Me.Hide() 
oForm.ShowDialog() 

Me.Close() 
+0

感謝Baumi,我試試這個,但只有Form1關閉,Form2不會出現。 – user30643

0

我懷疑你正在建立一個登錄對話...如果是這樣,或類似的,試試這個..

首先打開你的主窗體...(窗體2),有窗體2 showdialog(模態)form1。 ..這會將form1放在form2之上。

將屬性添加到表單1,根據發生的情況進行設置。例如sucessfull登錄。

從自己的方法關閉窗體1 ...(成功驗證後),關閉前設置屬性。

在form2上,閱讀form1的這個屬性,然後處理form1,然後決定怎麼做......如果登錄失敗,再次顯示登錄表單,結束應用程序。如果成功,只是優雅地退出顯示form1的方法。您的表格2現在是唯一開放的表格。

開始與窗體2

Form2_load

dim f1 as new form1 
f1.showdialog 
if f1.someproperty = somevalue then 

' do something here, for instance, pop the form again, if you did not get what you were lookign for... 

end if 

'gracefully let the function end and form2 is now the only open form.. 

'dispose of form1. form1's close call does not dispose it, because it was opened modally. (showdialog) 

f1.dispose 
f1 = nothing 

在Form1,這取決於你在做什麼,設置自定義屬性和調用me.close,這將退出表格,並運行在form2中的下一個代碼。

+0

嗨,路易斯,感謝您的回答,我不使用登錄對話框,我所做的是構建一個DLL。 – user30643

0

試試這個:

Dim oForm As New Form2 

oForm.Show() 

Me.Visible = False 

你會關閉您的第一形態和這個關閉程序。如果你讓他看不見,他不會關閉。

0

您想關閉Form1並打開Form2當按下Button1時,對吧?此代碼適用於Form1中的Button1。你沒有告訴太多,我不知道到底是什麼你正在嘗試做的,但是這是按一個Button關閉一個Form並打開另一個Form最簡單的方法,總是對我的作品

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Me.Close() 
    Form2.Show() 
End Sub 
3

嘗試

Dim oForm as New Form2 

oForm.Show() 

和對窗口2

Form1.Hide() 
相關問題