我的主窗口有一个控件显示的是一张数据库中的表。
我有一个按扭,弹出修改数据库的操作。
我想实现,如果对话框是点确定关闭的。就是修改了数据库,需要刷新控件中的数据,以便和数据库同步。
如果是点取消,或是直接关闭的。就说明没有改到数据库,就不用刷新。但我是不知道窗口是怎么关闭的,是确认之后关闭的,还是取消了关闭的。
from1.show
能不能让窗口关闭时,有一个返回值。
就像
If MsgBox("确认删除", vbYesNo, "标题") = vbYes Then
我可以根据返回值判断窗口是怎么关闭的。

解决方案 »

  1.   

    Dim Msg, Style, Title, Help, Ctxt, Response, MyString
    Msg = "Do you want to continue ?"   ' 定义信息。
    Style = vbYesNo + vbCritical + vbDefaultButton2   ' 定义按钮。
    Title = "MsgBox Demonstration"   ' 定义标题。
    Help = "DEMO.HLP"   ' 定义帮助文件。
    Ctxt = 1000   ' 定义标题 
          ' 上下文。
          ' 显示信息。
    Response = MsgBox(Msg, Style, Title, Help, Ctxt)
    If Response = vbYes Then   ' 用户按下“是”。
       MyString = "Yes"   ' 完成某操作。
    Else   ' 用户按下“否”。
       MyString = "No"   ' 完成某操作。
    End If返回值常数 值 描述 
    vbOK 1 OK 
    vbCancel 2 Cancel 
    vbAbort 3 Abort 
    vbRetry 4 Retry 
    vbIgnore 5 Ignore 
    vbYes 6 Yes 
    vbNo 7 No 
      

  2.   

    在主窗口里写上if Form1.ShowDialog()= vbYess Then
    把子窗口的确定按钮的DialogResult属性设为Yes,这样就可以。
      

  3.   

    from1.show
    模块内设置全局变量,在关闭form1时,给它不同的赋值,然后判断这个全局变量的值就知道窗体是怎么关闭的了。
      

  4.   

    不好意思,我的方法是。net里的方法
      

  5.   

    在窗口上增加一个变量
    Public bFlag As Boolean
    如果是确认关闭窗口的话,bFlag = True在弹出窗体之后,判断这个变量的值
            If frmEditPart.bFlag = True Then
                '刷新控件里的数据
           End If
      

  6.   

    主窗口里
    Private Sub Command1_Click()
        Form2.Show 1       '''Form2是主窗口
        MsgBox Form2.a
        Unload Form2
    End Sub
    主窗口里
    Public a As VbMsgBoxResult
    Private Sub Command1_Click()
        a = vbYes
        Me.Hide
    End Sub
    这样就可以了