实时错误426 只允许一个MDI窗体

在开发机房收费系统时遇到VB错误426,表现为无法加载主窗体,甚至导致程序崩溃。错误源于尝试打开两个模态MDI窗体。解决方案是删除或注释掉登陆窗体中多余的fMainForm.Show代码,确保只有一个MDI窗体被加载。学习到的经验是面对问题不应逃避,及时解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       自己在做机房收费系统的时候,调试的时候没有遇到此类错误。但是又一次调试不想再登陆窗口启动,就把启动项设置为了别的窗体,结果再改到Sub main启动,窗体就不能运行了。

错误的表现有两种:第一种是什么都不显示,不能加载主窗体,登录窗体也不见了,结果按结束程序的时候,整个程序就崩溃了,vb直接停止运行。第二种,弹出错误窗体

如下:



起初出现这种错误,我这属于第一种,没有提示什么都没有,最终就是把启动项改到一frmlogin,这样程序才能继续运行下去。

昨天又遇到了此错误,然后这才发现,改启动项只是暂时的,但是不知道错误的根本原因是不行的。不能逃避问题。

出现错误的原因如下:


  Dim fLogin As New frmLogin
   
     fLogin.Show vbModal                 'vbModal 模式窗体
   
     If Not fLogin.ok Then
       
     End
   
   End If
   
   Unload fLogin
    
    Set fMainForm = New frmMain
    fMainForm.Show


在这段代码中有一个fMainForm.Show,但是好玩的是,我们在登陆窗体的代码中也写到了这一点,以至于导致窗体在将要加载的时候,就获得了加载两个主窗体的代码命令,在这个时候对于只能加载一个主窗体的程序,只能奔溃。

所以我们只需要在登陆窗体中把fMainForm.Show删除或者注释掉,就能解决问题了。

这次的问题,学到的不仅仅是解决了一个问题,懂得了一个知识点,更重要的是遇到问题不要退缩。如果这次退缩,我们获得的知识心灵上的一个安慰。那下一次呢,也许下一次没有解决会带来更严重的后果。

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值