vb程序按关闭后进程还在

c4383105 2011-02-06 10:25:16
为什么有些时候vb程序按关闭后进程还在?
如果这样的话程序关闭后就不能再次启动了,要结束进程后才可以。。。


尝试过网上写的:
Private Sub Form_Unload(ByVal Cancel As Integer)
End
End Sub

也无效,进程还是在,窗口没了。
...全文
929 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
kakakakakakakakaea 2012-11-10
  • 打赏
  • 举报
回复
假如,我将一个名为Form2的窗体使用了Me.Hide,直接按"X"键是无法关闭的,必须使用以下代码: Form2.Close Me.Close 其实,最好的解决办法是不要使用"Me.Hide",直接Close,如果有变量需要传递,就在需要传递的窗体里增加一个公用变量,直接赋值就行了。 例如: 'Form2: Public Class Form1 Private Sub C Form1.a = Me.Text Me.Close End Sub End Sub '================== 'Form1: Public Class Form1 Public a as string End Class 我是一个初一学生,QQ:1421023950 加我时在备注上写明 "我来自CSDN,我来自……"
c4383105 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 txzsp 的回复:]

LZ说的是VB.net还是VB6?
[/Quote]


vb.net 而且是visual studio 2010的 .net framework4
思考 2011-02-09
  • 打赏
  • 举报
回复
看来是vb.net
txzsp 2011-02-09
  • 打赏
  • 举报
回复
LZ说的是VB.net还是VB6?
Lactoferrin 2011-02-08
  • 打赏
  • 举报
回复
我还以为你用的是vb6
c4383105 2011-02-08
  • 打赏
  • 举报
回复
算了,我研究出来了,还是自己来回答吧:
我用的是vs2010版,查找form的事件里面没有unload这个事件,我一个个试,找到了disposed事件,才是右上角"X"的正确事件,代码如下:
Private Sub application1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
End
End Sub

个么以下帖子讨论如何不要隐藏窗口,就是me.hide,在切换窗口时直接关闭第一个窗口打开的二个窗口好了。。。。
Lactoferrin 2011-02-08
  • 打赏
  • 举报
回复
在非主窗口点X不会unload,请使用Form_Terminate
c4383105 2011-02-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 robake 的回复:]

引用楼主 c4383105 的回复:
为什么有些时候vb程序按关闭后进程还在?
如果这样的话程序关闭后就不能再次启动了,要结束进程后才可以。。。


尝试过网上写的:
Private Sub Form_Unload(ByVal Cancel As Integer)
End
End Sub

也无效,进程还是在,窗口没了。


你的程序里是否调用了外部进程?

比方调……
[/Quote]



我可以肯定是在切换窗口的时候使用了me.hide命令
新建新的程序试验过了,切换窗口后则不能正常关闭
robake 2011-02-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 c4383105 的回复:]
为什么有些时候vb程序按关闭后进程还在?
如果这样的话程序关闭后就不能再次启动了,要结束进程后才可以。。。


尝试过网上写的:
Private Sub Form_Unload(ByVal Cancel As Integer)
End
End Sub

也无效,进程还是在,窗口没了。
[/Quote]

你的程序里是否调用了外部进程?

比方调用Excel进程生成Excel表格的时候若未退出Excel进程,可能出现你这种情况。
如果可以,请贴上你完整的代码。
c4383105 2011-02-08
  • 打赏
  • 举报
回复
都没人回答,这个问题应该很简单啊,大多程序都会碰到窗口切换用me.hide的问题。
那些程序用“X”都不能关闭吗?
music_0000 2011-02-07
  • 打赏
  • 举报
回复
主窗体关闭即表示程式退出
music_0000 2011-02-07
  • 打赏
  • 举报
回复
因为进程无法及时结束,还请检查程序结束后那段代码还在运行
c4383105 2011-02-07
  • 打赏
  • 举报
回复
我发现还是窗口切换的问题,第一个窗口Me.hide了,没有关闭,但想不出什么办法解决
c4383105 2011-02-07
  • 打赏
  • 举报
回复
微软文件库官方解释:

即使关闭的窗体是在您的应用程序中指定的启动窗体,它将不会自动卸载以前加载的窗体。 因此,应用程序可事实上仍然运行并显示在 Windows 任务列表中。您可以通过在 Windows 任务列表中,选择结束任务按钮终止该应用程序,但您不能切换到该任务。

下面是该步骤导致应用程序终止时在特定的窗体被关闭从控制菜单 (ALT + F4) 所必需的。

与加载 VB.EXE (Windows 的 Visual Basic 开发环境) 中的该应用程序,请执行下列操作:


双击该窗体以打开代码窗口。
将 End 语句添加到 Form_Unload 事件过程中为窗体。例如:
Sub Form_Unload (Cancel As Integer)

' Your code goes here.

End ' This unloads all the forms and terminates the application.

End Sub


添加到窗体的 Unload 事件过程的 End 语句,将不会导致调用其他窗体的卸载事件过程。若要可调用其他窗体的卸载事件过程使用卸载语句显式卸载每个窗体。

--------------------------------------------------------------------------------




但是试了还是没用,把Sub Form_Unload的form改成自己的窗口名称也试过了
c4383105 2011-02-07
  • 打赏
  • 举报
回复
我发现这段代码没有任何用处:
Private Sub Form_Unload(ByVal Cancel As Integer)
End
End Sub

我把end改成其他命令也不执行的,那怎么把end命令注入到“X”里面去?
robake 2011-02-07
  • 打赏
  • 举报
回复
加上me.dispose
c4383105 2011-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]

查查代码,是否有子线程未关闭。
[/Quote]


好像是这样的,有两个窗口,第一个窗口我Me.hide,显示第二个窗口后,我在第二个窗口点X的

有影响吗?
c4383105 2011-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]

查查代码,是否有子线程未关闭。
[/Quote]


应该没有吧。。。有没有什么指令点X后强制关闭的。。。。
机器人 2011-02-06
  • 打赏
  • 举报
回复
查查代码,是否有子线程未关闭。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧