none
这个代码写的对不对! RRS feed

  • 问题

  • 呵呵!我上次的省份与城市的代码在实践中已经知道怎么编写了! 不过这次又有新问题! 在关闭子窗体是MSgbox提示是否要关闭窗体选择是就关闭子窗体选择否就不不关闭
    2009年7月9日 2:17

答案

  • 你好!
         你可以利用e.Cancel属性,如果不想关闭窗体,就这样写:
         e.Cancel=true
    周雪峰
    2009年7月9日 4:50
    版主
  • Private Sub Form4_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
            Dim myti As Integer
            myti = MsgBox("确定关闭此窗体", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "提示")
            Select Case myti
                Case MsgBoxResult.Yes
                    e.Cancel = False
                Case Else
                    e.Cancel = True
            End Select
        End Sub

    知识改变命运,奋斗成就人生!
    2009年7月11日 3:31
    版主

全部回复

  • Private Sub Form4_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
            Dim myti As Integer
            myti = MsgBox("确定退出此窗口,退出时请注意保存数据!", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "询问")
            Select Case myti
                Case MsgBoxResult.Yes
                    End
                Case MsgBoxResult.No
    
            End Select
           
        End Sub
    这是我写的代码
    2009年7月9日 2:19
  • 你好!
         你可以利用e.Cancel属性,如果不想关闭窗体,就这样写:
         e.Cancel=true
    周雪峰
    2009年7月9日 4:50
    版主
  • 你好,在 FormClosing 事件中判断,并根据条件设置 e.Cancel , 并不是在 Closed 中
    知识改变命运,奋斗成就人生!
    2009年7月9日 15:04
    版主
  • 为什么我代码怎么写,不管点确定也是关闭,点取消也是关闭!

    2009年7月10日 1:42
  • 当然了啊,按你那样写的确是点确定也是关闭,点取消也是关闭,如果不想关闭窗体,就加上这行代码:
         e.Cancel=true
    周雪峰
    2009年7月10日 6:46
    版主
  • Private Sub Form4_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
                    Me.Close()
                Case Else
                    e.Cancel = True
            End Select
        End Sub
    这样写?觉得不对!
    2009年7月11日 3:14
  • Private Sub Form4_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
            Dim myti As Integer
            myti = MsgBox("确定关闭此窗体", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "提示")
            Select Case myti
                Case MsgBoxResult.Yes
                    e.Cancel = False
                Case Else
                    e.Cancel = True
            End Select
        End Sub

    知识改变命运,奋斗成就人生!
    2009年7月11日 3:31
    版主
  • Private Sub Form4_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
                    Me.Close()
                Case Else
                    e.Cancel = True
            End Select
        End Sub
    
    这样写?觉得不对!
    Private Sub Form4_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If MsgBox("确定关闭此窗体", MsgBoxStyle.Question or MsgBoxStyle.YesNo, "提示") = MsgBoxResult.No Then
                    e.Cancel = True
            End If
    End Sub
    您的代码并没有错啊……不过我更习惯上面这样的写法^-^看起来比较省事……

    It's never too late to learn
    2009年7月11日 8:12
  • 你写的代码有问题的
    Private Sub Form4_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
                    Me.Close()
                Case Else
                    e.Cancel = True
            End Select
        End Sub
    
    

    你在FormClosing事件中又调用Me.Close()方法,这个方法又会触发FormClosing事件,最终导致堆栈溢出或内存耗尽
    周雪峰
    2009年7月11日 11:13
    版主
  • 那要怎么改?给个提示!
    2009年7月13日 4:39
  • 那要怎么改?给个提示!
    Private Sub Form4_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If MsgBox("确定关闭此窗体", MsgBoxStyle.Question or MsgBoxStyle.YesNo, "提示") = MsgBoxResult.No Then
                    e.Cancel = True
            End If
    End Sub
    这样比较好理解吧。FromClosing在退出过程的时候如果Cancel没有设置成True就会关闭窗体
    It's never too late to learn
    2009年7月13日 4:40
  • 可以这样写:
    Private Sub Form4_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
            Dim myti As Integer
            myti = MsgBox("确定关闭此窗体", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "提示")
            Select Case myti
                Case MsgBoxResult.Yes
                    e.Cancel = False
                Case Else
                    e.Cancel = True
            End Select
        End Sub
    


    周雪峰
    2009年7月13日 4:44
    版主