我想制作一个inputBox,系统带的不符和要求,
关键是怎样把我自己做的对话框,作成一个有返回值的函数,就象Msgbox , inputBox
而不是Form.show 1
谢谢!

解决方案 »

  1.   

    做一个 form1.show 1,然后在函数中调用。在 form1 中放一个label、一个 textbox 和两个按钮:确定和取消,不管按下确定还是取消,都将 form1.hide;如果是取消,还将 text1.text=""然后在调用 form1 的语句后面取得 form1.text1.text 作为函数的返回值,最后 unload formFunction myInputBox(ByVal sTitle As String, ByVal sPrompt As String) As String
    '两个参数:一个是标题文字,一个是提示文字    Load Form1
        Form1.Caption = sTitle
        Form1.Label1.Caption = sPrompt
        Form1.Show 1
        
        myInputBox = Form1.Text1.Text   '这就是返回值
        
        Unload Form1
        Set Form1 = Nothing
    End Function
      

  2.   

    做成一个类,或者是模块也行。
    MsgBox类中
    初试化时,动态生成一个窗体,因为你是做提示框,没有必要和工程里的窗体有什么关系。
    初始化时,还可以设定窗体上的控件,文字。和其属性。
    不要忘了,加一个ImageList和Pic来放置图片。就是那些问号,叹号什么的。
    最麻烦的就是为这些东西设置事件,如按钮的按下,这个你可以找其他的文章来看。
    最后就是在MsgboxShow(标题,内容,对话框形式,..,..,..,..)过程中写怎么调用的
    好处是编译成DLL就可以用,缺点是极其麻烦.
    以上仅供参考。