扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这是由于你的启动类是form1,也就是说form1是你的主函数,你关闭form1就相当于关闭程序;
创新互联成立于2013年,是专业互联网技术服务公司,拥有项目做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元黄岛做网站,已为上家服务,为黄岛各地企业和个人服务,联系电话:13518219792
如果你只希望弹出form2的时候form1隐藏,可以再form2.show()之后调用form1.hide(),之后关闭form2的时候再关闭form1就可以达到你想要的效果了;
再有一种做法就是你需要一个主函数类,使用它调用form1跟form2,这样关闭哪一个都不会影响另一个。
顶你啊
窗体的
MaxButton
属性设为False
不就没最大化了
或者设置
BorderStyle属性
===================================
Private
Declare
Function
GetSystemMenu
Lib
"user32"
(ByVal
hwnd
As
Long,
ByVal
bRevert
As
Long)
As
Long
Private
Declare
Function
RemoveMenu
Lib
"user32"
(ByVal
hMenu
As
Long,
ByVal
nPosition
As
Long,
ByVal
wFlags
As
Long)
As
Long
Private
Const
MF_REMOVE
=
H1000
Private
Const
SC_CLOSE
=
HF060
Sub
Disabled(ChWnd
As
Long)
'设置窗体关闭按钮不可用的子过程
Dim
hMenu,
hendMenu
As
Long
Dim
c
As
Long
hMenu
=
GetSystemMenu(ChWnd,
0)
RemoveMenu
hMenu,
SC_CLOSE,
MF_REMOVE
End
Sub
Private
Sub
Form_Load()
Disabled
Me.hwnd
'调用子过程
End
Sub
this.close() 只是关掉,没有释放,不对 me.close() 应该释放一下 me.Dispose() 给分吧、
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
首先这个应该放在 FormClosing 事件中。
其次,因为你 Else 之后没有忽略窗体关闭的请求。
应该再加一句 e.Cancel = True,表示告诉系统,我取消关闭窗体这个操作了。
如果这个窗体是主窗体的话,你只能隐藏,因为主窗体关闭的话程序就退出了。
如果不是主窗体,可以用Form1.Close来关闭。
如果实在是想关闭,就得把程序启动设为sub
main而不是form。
再由sub
main来启动窗体,这样就没有主窗体了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流