注册 登录
编程论坛 VB.NET论坛

不能再两个项目之间复制窗体?

xiangyue0510 发布于 2016-04-17 20:52, 6805 次点击
今天遇到一个很诡异的情况。这个程序是我专门为主程序做的一个launcher。在运行的时候限制一张图片,检查配置文件是否正确。正确的话shell命令调用主程序启动,这个测试通过了的。
如果不正确的话弹出对话框,用户可以选择设置配置文件或者退出。但是出问题了,弄了半天不行,求大神帮助
问题一:
配置窗体FormConfig不能正常启动。
加断点逐行运行的时候,发现FormConfig_Load 执行完成之后,跳转到下面的FormConfig.Show(),然后是End
更为诡异的是launcher窗体并未退出,FormConfig窗体出现,但是一直处于加载和等待的状态(控件在加载中那种),过了一会FormConfig不见了,launcher窗体一直在那里。没有报错什么的。
程序代码:
     If aa = vbYes Then
            FormConfig.SV_OK = SV_GOOD
            FormConfig.Config_OK = CONFIG_GOOD
            FormConfig.TopMost = True
            FormConfig.Show()
        ElseIf aa = vbNo Then
            End
        End If

FormConfig加载应该是没有问题的,是主程序的一个窗体复制过来的。而且把启动项改为FormConfig也是可以的正常显示。


[此贴子已经被作者于2016-4-17 20:55编辑过]

6 回复
#2
不说也罢2016-04-18 11:01
暂无法作深入分析,既然楼主说end代码被执行,那么aa=vbno的条件一定被满足了。需仔细检查两个窗体的代码。另外,end代码确认被执行了么?在之前下个断点或加个msgbox试试确认下
#3
xiangyue05102016-04-18 14:23
回复 2楼 不说也罢
这个就是诡异的地方,图上就是在运行到FormConfig.Show()中断点,之后F8逐行运行到End,但是aa监控显示是vbyes。
窗口也是这样卡住死在那里
只有本站会员才能查看附件,请 登录
#4
xiangyue05102016-04-18 14:28
刚才把上面FormConfig.Show()断点删除之后,不会停在End上,窗口也正常的加载(控件都正常显示了),但是还是卡死的状态,不响应任何操作,过了几秒钟之后这个窗口自动消失……
百思不得其解
#5
不说也罢2016-04-18 18:07
楼主可以考虑上传一个能重现此问题的项目上来,明天有空看看。
#6
xiangyue05102016-04-19 09:37
那就辛苦版主帮助看一下了。
只有本站会员才能查看附件,请 登录
#7
不说也罢2016-04-19 12:20
有了这个,原因就很快找到了。
程序代码:

If aa = vbYes Then
            FormConfig.SV_OK = SV_GOOD
            FormConfig.Config_OK = CONFIG_GOOD
            FormConfig.TopMost = True
            'FormConfig.Show()问题出在这里,改为下面的行代码
            FormConfig.ShowDialog()  '以模式窗口显示FormConfig,症状消失
            '这是因为啊,FormConfig不以模式窗口运行的话,FormLaunch窗体启动后的代码会继续执行,找不到配置文件,连接不上数据库。。。。。。。。导致楼主所遇上的问题。此前出现的加载和等待的状态,其实就是FormLaunch窗体代码中连接数据库的任务进行中.
        ElseIf aa = vbNo Then
            End
        End If


程序中其他的代码,我没有继续调试,楼主继续吧
1