回 帖 发 新 帖 刷新版面

主题:程序卡死了,55555求救呀......

我用form1调用form2,是模态调用,在调用form2时我把form1最小化了。程序运行后,点击任务栏上的FORM1时,问题出来了,软件被锁死,FORM1和FORM2都得不到焦点,无法接受输入,怎么办呀?[em21]

回复列表 (共8个回复)

沙发

对了,本意是为了实现当模态调用另一个窗体时,主窗体隐藏,但任务栏应该保留有图标,如果使用form2.show 1 加form1.hide方法的话,任务栏就什么也没有了,所以才想出这个办法,当调用其它窗体时,最小化主窗体,当被调用窗体关闭时,恢复主窗体。鬼知道会出现这种问题,我就晕呀!!!!
源码如下:
Private Sub Command1_Click()
    Me.WindowState = 1
    Form2.Show 1
    Me.WindowState = 0
End Sub

板凳

我按你说的试了一下,没问题啊。Form1主窗体的borderstyle属性应设为2,而且你必须要关闭Form2以后才会出现Form1,在关闭Form2之前,点击任务栏上的FORM1图标是没有用的

3 楼

不会吧,我的就是不行呀!点Form1的任务栏图标后,FORM2失去焦点,但因FORM2是模态的,所以FORM2未关闭之前FORM1也得不到焦点,这时再点FORM2,仍然得不到焦点,我就晕呀!整个程序都没办法输入了

4 楼

不管窗体的borderstyle属性怎么设都是没反应呀

5 楼

在Form2的Resize事件中加 Me.SetFocus
或者Form1中用<Timer> Or <循环> 不停发送 Form2.setfocus

6 楼

你是不是把FORM2最小化了?如果这样,FORM2会隐藏在任务栏后面,你有两个解决办法:
1.将任务栏设置为“自动隐藏任务栏”,这样,任务栏缩到屏幕下方后就会看到FORM2。
2.将FORM2R的标题栏去掉,或者将FORM2的最小化按纽去掉

7 楼

试试下面form2显示的方法,看看是不是你要的
form2.show,me

8 楼

7楼的,你那个和form2.show 0,me一样,调用的是非模态的,可我要的是模态的!
6楼的,你还没看懂我的意思,FORM2是在屏幕正中的,并没有在任务栏背后
5楼的,窗体不接受SetFocus方法,虽然它也有这个方法
问题最后解决了,将第一个窗体隐藏,使窗体2操作时,无法对窗体1操作,卸载窗2时恢复显示窗体1,也达到了同样的效果,但这个卡的问题,我还是不明白!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册