如何Private Sub Form1_FormClosing中取消关闭窗体,

sy123782568 2010-09-20 08:49:31
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim myti As Integer myti = MsgBox("确定关闭此窗体", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "提示")
Select Case myti
Case myti = MsgBoxResult.Yes e.Cancel = False
End
Case myti = MsgBoxResult.No e.Cancel = True
End Select
End Sub
这个我实在网上搜的。好像是VS2005的。
我现在用的vs2008。想使用这种方法取消关闭窗体,但是没有e.Cancel = True 。请高手指教!
...全文
378 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsjrzjp 2011-11-22
  • 打赏
  • 举报
回复
不错,谢谢
sy123782568 2010-09-21
  • 打赏
  • 举报
回复
我找到原因啦,我把代码发到FORMCLOSED 里拉。谢谢各位!
兔子-顾问 2010-09-21
  • 打赏
  • 举报
回复
cancle?
你拼写错误?
Cancel
sy123782568 2010-09-21
  • 打赏
  • 举报
回复
我试了,不行的,要是写e.Cancel = True 这句的话,系统提示错误。提示内容是:“cancle”不是“system.windows.forms.formcloseEventArgs”的成员
Tosp2012 2010-09-20
  • 打赏
  • 举报
回复
楼主可以结贴了,2楼的可以。
Snowdust 2010-09-20
  • 打赏
  • 举报
回复
这段代码不分2005还是2008的,你这样试一下:
	Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim myti As Integer
myti = MsgBox("确定关闭此窗体", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "提示")
Select Case myti
Case MsgBoxResult.Yes
e.Cancel = False
End
Case MsgBoxResult.No
e.Cancel = True
End Select
End Sub
兔子-顾问 2010-09-20
  • 打赏
  • 举报
回复
有的,不过你的代码排版不对。
粘贴如下的在你的Form1中可以。

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim myti As DialogResult = MessageBox.Show("确定关闭此窗体", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk)
Select Case myti
Case Windows.Forms.DialogResult.Yes
e.Cancel = False
Case Windows.Forms.DialogResult.No
e.Cancel = True
End Select
End Sub
wuyq11 2010-09-20
  • 打赏
  • 举报
回复 1
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs)
If MessageBox.Show("是否现在关闭窗口", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) <> DialogResult.OK Then
e.Cancel = True
End If
End Sub
在码农的生活,很多级码农都有这样的经历,会被一个小小的技术问题拦住,然后进度跟不上了,被老板XXXX一大通了。心情不爽了。 好吧,这个曾经是我遇到拦路虎之一。但事实上不是什么大技术。技术就是一层纸,破了就破了。 这是一个关于如何跨窗体操作控件或过程的一个例子。比如,你想用窗体A的按键来执行窗体B的文本框变色。 Imports System Imports System.Threading Imports System.Text Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load CheckForIllegalCrossThreadCalls = False '不写这行,会出错,不允许线程的数据写到TextBox1.Text 去。 Form2.Show() End Sub Private Sub form1_FormClosing(sender As Object, e As EventArgs) Handles Me.FormClosing ' If runThread.IsAlive = True Then runThread.Abort() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '用的是委托方式 Me.Invoke(New MethodInvoker(AddressOf THREAD2)) End Sub Private Sub THREAD2() Static j As Integer j = j + 1 TextBox1.Text = " 这是 [线程] 操作" & vbCrLf & _ " Button2被点了: " & j & " 次" & vbCrLf & "要求是from2.textbox.text= textbox1.text 。[问题]但为什么不能成功显示呢?" End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Form2.TextBox1.Text = TextBox1.Text End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Static j As Integer j = j + 1 TextBox1.Text = " 这是 [非线程] 操作" & vbCrLf & _ "Button3 点击了: " & j & " 次" & vbCrLf & _ "要求是from2.textbox.text= textbox1.text, 可以成功显示,这个是对的。" End Sub End Class

16,554

社区成员

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

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