**百分询问** MDIFORM的窗口切换问题
我程序里有一个MDIFORM和多个FORM,现在需要,能在多个FORM之间任意切换,且每次切换时,焦点必定位于TABINDEX=0的那个控件上。
问题:
1 在Form.show以后,我手动将那个TABINDEX=0的控件SetFocus的话,偶尔会出现“实时错误5 无效的过程调用或参数”,因为,可能那个控件还没有装载。
2 我不用SetFocus的话,则第一次用Form.show显示窗体时,会正常按照要求运行。而再次切换时,FORM已经在内存中,则用Form.show不会将此FORM置于MDIFORM的最前端。
[解决办法]
試試在每個子窗體中加入以下代碼,
Private Sub Form_Activate()
Text1.SetFocus '替換為你要的
End Sub
[解决办法]
问题2.默认属性情况下不会吧?
[解决办法]
1.在form_active里加入得到焦点的代码
2.form.show
form.zorder 0
[解决办法]
去掉 文本框控件获得焦点的语句。将文本框的tabindex值设为0
[解决办法]
frm3.Show
frm.Visible = True
frm3.TxtSelect.SetFocus
[解决办法]
楼主可以试试在窗体再次 show 方法后 加上 ZOrder 方法,让如
Form2.Show
Form2.ZOrder 0
经过测试可以将窗体移动到最前端显示
ZOrder 方法
将指定的 MDIForm,Form 或控件放置在其图层的z-顺序的前端或后端。
[解决办法]
杰西 的方法应该不错,帮顶;
另外窗体切换,我采用的都是有一个专门的菜单+子菜单方式用于切换窗体,
方法简单易行!