社区
VB
帖子详情
关于多窗体关闭时的问题?
xdd1125
2002-11-08 01:41:23
在form1的实例f1的load 事件中加载form2的实例f2,如果f1退出则f2跟着退出,是否是因为f2是f1的子线程,或者其它原因?
这和vb6区别很大,也请您介绍一下这方面的资料
...全文
163
6
打赏
收藏
关于多窗体关闭时的问题?
在form1的实例f1的load 事件中加载form2的实例f2,如果f1退出则f2跟着退出,是否是因为f2是f1的子线程,或者其它原因? 这和vb6区别很大,也请您介绍一下这方面的资料
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yufenfeila
2002-11-09
打赏
举报
回复
学习中……
xdd1125
2002-11-09
打赏
举报
回复
多谢
sumtec
2002-11-08
打赏
举报
回复
主要是这样的,VB.NET实际上生成了这么一段代码,当然我这里是模拟给你们看的,现实中看不到这样的代码:
Module Module1
Sub Main()
Application.Run(New Form1())
End Sub
End Module
这个Application.Run的功能就是显示Form1,开始Form1的消息队列处理并保证当前线程是活动的,一直等到这个Form1的实例注销之后才退出Application.Run过程。于是,当Form1的实例注销之后,Application.Run就退出了,然后呢,就是退出Sub Main,在然后呢,就是退出整个进程。
有人就搞不懂了,我没有动那个Form1的时候,好像也没有执行什么东西呀,这个时候岂不是也是等于没有运行吗?怎么不退出呢?
其实是这样的:并不是什么也没有运行,而是控制的焦点在Application.Run里面。大略写一下Application.Run这个函数:
Sub Run(ByVal c As Control)
If c is Nothing Then Return
c.Visible = True;
Do Until c is Nothing
If HaveNoMessage(c) Then Thread.Sleep()
c.ProcessMessage()
Loop
End Sub
这里的HaveNoMessage是虚构出来的,懂什么意思就好了。
xdd1125
2002-11-08
打赏
举报
回复
我想是不是f1是主线程,而从f1中产生的线程则是它的子线程,主线程退,则子线程也被迫退出(我对这样的线程机制不太了解,请大家多多协助)
eliphe
2002-11-08
打赏
举报
回复
form1为主窗体代表程序本身,他关闭,肯定是整个都关闭了呀。
xdd1125
2002-11-08
打赏
举报
回复
up
Winform子
窗体
间切换
时
(激活某个子
窗体
)闪屏的解决
C#子
窗体
间切换
时
闪屏的解决方法,用VS2005打开,并添加了注释。很容易就看懂。。
C#把MDI子
窗体
变为标签页面(不改写任何控件)
利用TabControl实现MDI子
窗体
标签式显示。
将
窗体
编译成类库
将
窗体
编译成类库
c#
窗体
嵌入应用程序
c#
窗体
嵌入应用程序,程序里包含了控件,可以直接使用
C#控件一览表.pdf
C#控件一览表.pdf CSharp控件一览表.pdf
VB
16,721
社区成员
110,527
社区内容
发帖
与我相关
我的任务
VB
VB技术相关讨论,主要为经典vb,即VB6.0
复制链接
扫一扫
分享
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章