我怎么在窗体返回后取到它的返回值?就是能够判断用户是按了CANCEL还是OK退出的。
请各位大侠指教!!!

解决方案 »

  1.   

    是什么窗体,你自己的?还是对话框?如果是你自己的,你用全局变量或窗体的tag属性记录按下的是哪个就行了
      

  2.   

    实现如下:'这是 Form1 的代码
    Option ExplicitPrivate Sub cmdCancel_Click()
        g_blnOK = False
    End SubPrivate Sub cmdOK_Click()
        g_blnOK = True
    End SubPrivate Sub Command1_Click()
        '显示 Form2 窗体
        Form2.Show vbModal
        
        If g_blnOK Then
            MsgBox "用户单击了 Form2 中的确定按钮!"
        Else
            MsgBox "用户单击了 Form2 中的取消按钮!"
        End If
        
    End Sub
    '这是 Form2 的代码
    Option ExplicitPrivate Sub cmdCancel_Click()
        g_blnOK = False
        Unload Me
    End SubPrivate Sub cmdOK_Click()
        g_blnOK = True
        Unload Me
    End Sub
    '添加一个模块
    Option ExplicitPublic g_blnOK As Boolean
      

  3.   

    谢谢楼上的,我如果不用全局变量或者函数,能不能实现啊?
    在C++Builer中,可以直接这样用:ret=Form1->ShowModal()它能够直接返回,不知道VB中有没有类似用法?如果不行,看来我也只好用变量或者函数来传递了^_^
      

  4.   

    可以不用模块,不用全局变量,改为窗体中的公用变量Form1的代码:Option ExplicitPrivate Sub Command1_Click()
        Form2.Show vbModal
        Select Case Form2.iModalResult
        Case 1
            MsgBox "用户单击了 Form2 中的确定按钮!"
        Case 2
            MsgBox "用户单击了 Form2 中的取消按钮!"
        End Select
    End Sub
    Form2的代码:
    Option ExplicitPublic iModalResult As IntegerPrivate Sub cmdOK_Click()
        iModalResult = 1
        Me.Hide
    End SubPrivate Sub cmdCancel_Click()
        iModalResult = 2
        Me.Hide
    End Sub
      

  5.   


    --FORM1 (一个COMMAND)Option ExplicitPrivate Sub Command1_Click()
           MsgBox Form2.LoadForm()
           
    End Sub
    --FORM2 (两个COMMAND)Option ExplicitDim M_Return As StringPublic Function LoadForm() As String
            Me.Show 1
            LoadForm = M_Return
    End FunctionPrivate Sub Command1_Click()
        M_Return = Command1.Name
        Unload Me
    End SubPrivate Sub Command2_Click()
       M_Return = Command2.Name
       Unload Me
    End Sub
      

  6.   

    谢谢各位,看来这个VB还是行啊,特别是在用了C++BUIDER后^_^
      

  7.   

    比如:
    lngYes = MsgBox("数据发生变化,是否保存?", vbYesNo, "提示")
    If lngYes = vbYes Then
        cmdOK_Click
     Else
         Unload Me
      End If