Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net “应用程序自动关闭后”对话框_Vb.net_Winforms_Visual Studio 2013 - Fatal编程技术网

Vb.net “应用程序自动关闭后”对话框

Vb.net “应用程序自动关闭后”对话框,vb.net,winforms,visual-studio-2013,Vb.net,Winforms,Visual Studio 2013,对VB.NET来说是个新概念,但现在很难理解 我的Windows窗体应用程序启动“Form1”,然后使用以下命令启动对话框: Dim dialogResult As Boolean=configWizard.ShowDialog() 然后,ConfigWizard将一些数据写入注册表,弹出新的注册表值,并在此时关闭Form1的其余数据。 这一切都很好。。从Visual Studio 2015进行调试时 我面临的问题是,当我使用内置InstallShield为这个程序构建安装程序时。安装程序在安装

对VB.NET来说是个新概念,但现在很难理解

我的Windows窗体应用程序启动“Form1”,然后使用以下命令启动对话框:

Dim dialogResult As Boolean=configWizard.ShowDialog()

然后,ConfigWizard将一些数据写入注册表,弹出新的注册表值,并在此时关闭Form1的其余数据。 这一切都很好。。从Visual Studio 2015进行调试时

我面临的问题是,当我使用内置InstallShield为这个程序构建安装程序时。安装程序在安装时设置注册表值(这非常有效),然后打开对话框,设置新值,并弹出新值。这一切都很好。但是,只要我按下对话框上的“OK”,Form1就会立即关闭。 它应该弹出一个消息框说“真”,但整个程序关闭

在程序持续运行时,Form1确实在消失之前闪烁了毫秒。看起来这个程序只是因为一些未知的原因而关闭。我很困惑如何阻止Form1关闭。任何需要帮助的问题都将不胜感激

我省略了一些不相关的代码。 当Form1闪现时,我设法快速截取了一个屏幕截图(验证了对话框关闭后Form1和消息框中显示“True”的消息正在加载..尽管只是瞬间)

代码:

对话框:

私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击

    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


私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
Dim dialogResult为Boolean=configWizard.ShowDialog()
尝试
特例
MessageBox.Show(例如ToString)
结束尝试
MsgBox(对话框结果)
端接头

使用OnShown事件(
Form1\u Showed
)而不是OnLoad来显示对话框。

屏幕截图如下:开始在ty/catch块内移动调用ShowDialog。这是64位应用程序吗?谢谢回复;不,它是32位应用程序(TargetCPU是AnyCPU,但勾选了“首选32位。我需要它同时在32位和64位上运行”)将showdialog添加到Try/Catch块中不会改变任何东西。您可以显示一个实例化并显示
Form1
的代码吗?也在Form1 code
Me中的某个位置设置了。DialogResult
属性带有一些值?当然,所有代码都可以在此处查看:…我已经取出了很多与DataGridView相关的代码,只是为了停止混乱。我想重申一下,在调试程序时,它工作正常。在调试目录中运行standalone.exe时,它工作正常。只有在通过InstallShield完全安装后,它才会在对话框中关闭。谢谢。感谢回复;我已更改它,因此所有加载的数据都会在窗体1上触发,而不是在O上显示nLoad。但是,尽管Form1在对话框之前加载,但当对话框关闭时,它仍然会关闭整个应用程序。