Vb.net “应用程序自动关闭后”对话框
对VB.NET来说是个新概念,但现在很难理解 我的Windows窗体应用程序启动“Form1”,然后使用以下命令启动对话框: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为这个程序构建安装程序时。安装程序在安装
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 codeMe中的某个位置设置了。DialogResult
属性带有一些值?当然,所有代码都可以在此处查看:…我已经取出了很多与DataGridView相关的代码,只是为了停止混乱。我想重申一下,在调试程序时,它工作正常。在调试目录中运行standalone.exe时,它工作正常。只有在通过InstallShield完全安装后,它才会在对话框中关闭。谢谢。感谢回复;我已更改它,因此所有加载的数据都会在窗体1上触发,而不是在O上显示nLoad。但是,尽管Form1在对话框之前加载,但当对话框关闭时,它仍然会关闭整个应用程序。