Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、网站空间、成都网站托管、企业网站设计、网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。我们拥有完善的网络基础设施服务,能够为企业或个人提供主机域名、网站空间、企业邮局、网站加速、数据库、云主机等网络基础服务。
MsgBox("窗口即将关闭....")
End Sub
Else
e.Cancel = True
End If
VB.NET关闭当前窗体me.close()
其它窗体用:窗体名.close(),例如:form2.close()
利用Process类遍历当前所有进程,利用MainWindowTitle属性来获取指定窗口标题的进程ID,创建一个线程池或者线程,来循环检测这个ID的进程是否已退出,在循环线程中设置Thread.Sleep(50)中断来减少系统开销,这个方法仅适用于主窗口,也就是窗体关闭,程序就退出了,如果针对的是子窗口,就用第二种方法。
利用系统API,循环遍历所有窗口,当指定标题不存在时就是已经退出了。
首先这个应该放在 FormClosing 事件中。
其次,因为你 Else 之后没有忽略窗体关闭的请求。
应该再加一句 e.Cancel = True,表示告诉系统,我取消关闭窗体这个操作了。
Private Sub frmNotepad_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Call subexit()
End
End Sub
Sub subexit()
Dim frmNew As frmNotepad
frmNew = ActiveForm
If frmNew.Text = "未定标题 - 记事本" Then
If frmNew.rtb.Text = "" Then
Else
Dim result As New MsgBoxResult 'result提示对话框yes,no,cancel
result = MsgBox("未定标题 文件的文字已经改变。" Chr(10) Chr(10) "想保存文件吗?", MsgBoxStyle.YesNoCancel + MsgBoxStyle.Exclamation, "记事本")
If result = MsgBoxResult.Yes Then 'result.Yes表示保存,清空内容,打开新页面
Dim fileSave As New SaveFileDialog
Dim re As New DialogResult 're提示对话框OK,cancel
fileSave.FileName = "*.txt"
fileSave.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
re = fileSave.ShowDialog()
If re = DialogResult.OK Then 're.OK表示成功保存,清空内容,打开新页面
filename = fileSave.FileName
Dim fstream As FileStream
Dim sw As StreamWriter
Try
'frmNew.Text = filename.Substring(filename.LastIndexOf("\") + 1) "- 记事本"
fstream = New FileStream(filename, FileMode.Create, FileAccess.ReadWrite)
sw = New StreamWriter(fstream, System.Text.Encoding.Default)
sw.BaseStream.Seek(0, SeekOrigin.End)
sw.Write(rtb.Text)
sw.Flush()
Catch ex As Exception
MsgBox("保存文件失败")
Finally
sw.Close()
End Try
ElseIf re = DialogResult.Cancel Then 're.cancel表示不保存,不改变任何结果
End If
ElseIf result = MsgBoxResult.No Then 'result.no表示不保存,清空内容
rtb.Text = ""
End If
End If
Else
If rtb.Text.Compare(rtb.Text, compareStr) 0 Then
Dim result As New MsgBoxResult
result = MsgBox(filename + " 文件的文字已经改变。" Chr(10) Chr(10) "想保存文件吗?", MsgBoxStyle.YesNoCancel + MsgBoxStyle.Exclamation, "记事本")
If result = MsgBoxResult.Yes Then
Dim fstream As FileStream
Dim sw As StreamWriter
Try
'frmNew.Text = filename.Substring(filename.LastIndexOf("\") + 1) "- 记事本"
fstream = New FileStream(filename, FileMode.Create, FileAccess.ReadWrite)
sw = New StreamWriter(fstream, System.Text.Encoding.Default)
sw.BaseStream.Seek(0, SeekOrigin.End)
sw.Write(rtb.Text)
sw.Flush()
Catch ex As Exception
MsgBox("保存文件失败")
Finally
sw.Close()
End Try
ElseIf result = MsgBoxResult.No Then
rtb.Text = ""
End If
End If
End If
End Sub