登陆窗体的模式与非模式显示
2011-08-05 10:17
274 查看
今天做机房收费系统时,调试了半天窗体也不能显示,只是代码运行一遍就自动关闭了,一点一点的调试运行才找到问题的原因,因为,窗体的模式与非模式显示没有设置好。
说明如果调用 Show 方法时指定的窗体没有装载,Visual Basic 将自动装载该窗体。当 Show 在显示无模式窗体时,随后遇到的代码则要执行。当Show 在显示模式窗体 (modal form) 时,则随后的代码直到该窗体被隐藏或卸载时才能执行。当 Show 在显示模式窗体时,除了模式窗体中的对象之外不能进行输入(键盘或鼠标单击)。对其它窗体进行输入前程序必须隐藏或卸载模式窗体(通常是处于响应用户某些操作状态)。MDIForm 不能是形式的。在模式窗体显示时,虽然应用程序中的其它窗体失效,但其它应用程序不会失效。应用程序的启动窗体在其 Load 事件调用后会自动出现。下面的例子说明如何使用ownerform 参数:
Sub main() Dim frmLoginchild As New frmLogin frmLoginchild.Show vbModal '登陆窗体以模式方式登陆,这个窗体不卸载或隐藏,则下面的代码不运行 '判断登陆窗体是“确定”还是“取消” If Not frmLoginchild.Ok Then End End If Unload frmLoginchild frmMainForm.Show '显示主窗体界面 End Sub开始,我忘了把登陆窗体设置成模态方法,窗体总是执行一遍就迅速卸载,模式设置对于应用程序有时是非常有用的,对于登陆窗体如果,不设置模态,想使它实现判断是否执行的功能,可以用API函数实现,具体也不太清楚,实现起来应该会比这种方式麻烦些。把登陆窗体模式化后,发现主窗体还是显示不出来,想了一下,可能是设置成模式窗体的原因
Show 方法
用以显示 MDIForm 或 Form 对象。不支持命名参数。语法object.Showstyle, ownerformShow 方法的语法包含下列部分:部分 | 描述 |
object | 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略object,则与活动窗体模块关联的窗体缺省为object。 |
Style | 可选的。一个整数,它用以决定窗体是模式还是无模式 。如果style 为 0,则窗体是无模式的;如果 style 为 1,则窗体是模式的。 |
ownerform | 可选的。字符串表达式,指出部件所属的窗体被显示。对于标准的Visual Basic 窗体,使用关键字Me。 |
Private Sub cmdShowResults_Click() '显示模式窗体
frmResults.
frmResults.Show vbModal, Me
End Sub
然后,我把登陆窗体成功验证后面,加上了隐藏窗体,于是,程序就可以正常显示出来了,有时一点点代码在程序中却起着,很重要的作用,还需要我们认真思考代码如何运行?运行的原因?我们才能找到问题的答案。
相关文章推荐
- 登陆窗体的模式与非模式显示
- 登陆窗体的模式与非模式显示
- 模式与非模式窗体
- 当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作
- MFC模式对话框与非模式对话框 消息处理顺序 与非模式对话框的焦点问题、显示、关闭以及交互问题
- DLL中显示模式窗体
- 在打开有模式窗体后还能"显示"无模式窗体
- 如何不使用可视化设计来显示登陆窗体?
- 使用单例(单态)模式实现winform窗体的单例显示
- 当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体
- 单例模式之窗体显示
- "当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作。请指定 ServiceNotification....."的解决方案
- 窗体的模式显示
- 2013-2-20 疑问 cs 父窗体中axWindowsMediaPlayer是完整显示模式,单独窗体中是精简显示模式
- 登陆窗体显示动态效果
- 当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体
- c#第一篇 在WPF的window窗体中使用httpwebrequest实现模拟登陆网页,并在webbroser控件中显示
- 显示主窗体前显示登陆窗口的完美解决方案
- 非顶级窗体不能显示为模式对话框错误原因
- 窗体中有一个图片框,显示一副图片。要求:1)在窗体打开时,动态加载图片;2)设置图片显示模式为根据图片框大小缩放图片;3)图片自己找;4)当鼠标停留在图片框时,显示“**风光”提