簡體   English   中英

對話框后,應用程序自動關閉

[英]Application Auto-closes after dialog box

VB.NET的新功能,但目前還很困難。

我的Windows窗體應用程序啟動“ Form1”,然后使用以下命令啟動一個對話框:

Dim dialogResult As Boolean = configWizard.ShowDialog()

然后,ConfigWizard將一些數據寫入注冊表,並彈出新的注冊表值,然后關閉其余的Form1加載。 從Visual Studio 2015調試時,一切正常。

我面臨的問題是當我使用內置的InstallShield為該程序構建安裝程序時。 安裝程序會在安裝時設置注冊表值(效果很好),然后對話框將打開,設置新值,並使用寫入的新值彈出。 這一切都很好。 但是,在對話框上按“確定”后,Form1立即關閉。 應該彈出一個消息框,提示“ True”,但整個程序關閉。

程序不斷運行后,Form1確實消失了幾毫秒,然后消失了。 似乎該程序由於某種未知原因而剛剛關閉。 我對如何停止Form1的關閉感到很困惑。 任何問題的幫助將不勝感激。

我省略了一些不可靠的代碼。 我設法快速捕獲了Form1確實閃過的屏幕截圖(驗證Form1和對話框關閉后正在加載“ True”消息的消息框。盡管只是短暫的一秒鍾)

碼:

對話框: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

  myValue1= Me.myValue1.Text myValue2= Me.myValue2.Text Dim regKey As RegistryKey regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\removedSoftware", True) regKey.SetValue("value1", myValue1) regKey.SetValue("value2", myValue2) MsgBox(myValue1 & " + " & myValue2) MsgBox("Registry: " & regKey.GetValue("value1") & " data: " & regKey.GetValue("value2")) regKey.Close() Me.Close() End Sub 

表格1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dialogResult As Boolean = configWizard.ShowDialog() Try Catch ex As Exception MessageBox.Show(ex.ToString) End Try MsgBox(dialogResult) End Sub

使用OnShown事件( Form1_Shown )代替OnLoad來顯示對話框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM