标题:不能再两个项目之间复制窗体?
只看楼主
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
结帖率:100%
已结贴  问题点数:20 回复次数:6 
不能再两个项目之间复制窗体?
今天遇到一个很诡异的情况。这个程序是我专门为主程序做的一个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编辑过]

搜索更多相关主题的帖子: 配置文件 对话框 主程序 图片 项目 
2016-04-17 20:52
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
暂无法作深入分析,既然楼主说end代码被执行,那么aa=vbno的条件一定被满足了。需仔细检查两个窗体的代码。另外,end代码确认被执行了么?在之前下个断点或加个msgbox试试确认下

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-04-18 11:01
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
回复 2楼 不说也罢
这个就是诡异的地方,图上就是在运行到FormConfig.Show()中断点,之后F8逐行运行到End,但是aa监控显示是vbyes。
窗口也是这样卡住死在那里
2016-04-18 14:23
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
刚才把上面FormConfig.Show()断点删除之后,不会停在End上,窗口也正常的加载(控件都正常显示了),但是还是卡死的状态,不响应任何操作,过了几秒钟之后这个窗口自动消失……
百思不得其解
2016-04-18 14:28
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
楼主可以考虑上传一个能重现此问题的项目上来,明天有空看看。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-04-18 18:07
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
那就辛苦版主帮助看一下了。
Launch.zip (1.12 MB)
2016-04-19 09:37
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分: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


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

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-04-19 12:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463749-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023004 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved