在VB中如何将一个form里面的一个数值或一个textbox的value传递给另一个form里面的textbox或某一个value
谢谢

解决方案 »

  1.   

    form1.textbox1.text=form2.textbox1.text
      

  2.   

    应该用DDE吧,动态数据交换。窗体应该有个属性设置,然后编码。自己查查资料吧。
      

  3.   

    同一楼的, 或者写一个module(.bas), 定义成全局变量
      

  4.   

    同意楼上,
    public strAAA as string
      

  5.   

    一楼的,试过了,不行哟-__-
    我在form2里面定义了一个test为string
    然后照你的写test=form1.testbox1.text
    但什么都没有哟
      

  6.   

    要定义成全局变量global A as string,在模块中定义
      

  7.   

    TO jaghuang(jag):不可能呀,如果你能在FORM2中作用
    test=form1.testbox1.text
    那就说明testbox1是能被正确引用的,所以他的text属性是能被正常获取,你可以单步执行然后看看有没有变化,
    如果你的TEST要在一个SUB 或是一个FUNCTION外使用时你要把他定义成FORM2的全局变量,如果是要在FORM2以外使用则要在一个模块中定义并用public test as string
      

  8.   

    算了,我还是把我两个form的程序贴出来给大家看看吧。其中的DBValue是在module里面定义的全局变量
    SearchPO就是SearchForm的一个textbox
    现在就是要将它里面的value传到DisplayForm中
    但debug.print里面在DisplayForm中的DBValue是空的
    Private Sub Form_Load()
        DisplayForm.Visible = False
        
    End SubPrivate Sub Search_Click()
        SearchForm.Visible = False
        DisplayForm.Visible = True
        DBValue = SearchPO.Text
        Debug.Print "DBValue in SearchForm : " & DBValue
    End SubPrivate Sub Form_Load()
                Dim i As Integer
                Dim sStr As String
                Debug.Print "begin"
                Debug.Print "DBValue in Form3 : " & DBValue
                
                MSFlexGrid1.Visible = True
                MSFlexGrid1.Clear
                MSFlexGrid1.TextMatrix(0, 0) = "Title"
                MSFlexGrid1.TextMatrix(0, 1) = "PO"
                MSFlexGrid1.TextMatrix(0, 2) = "Price"
    End Sub
      

  9.   

    我现在发现问题可能不是出在我这两个form的程序上,而是启动这两个form的先后上
    很奇怪的是我不知道为什么DisplayForm总是比SearchForm先启动
    所以每次运行的时候是先运行DisplayForm再运行SearchForm,
    但我是将SearchForm设置为Sub Main的呀,照理应该是先运行SearchForm先才对呀
    然后我又试着用在SearchForm中的sub load中加入unload DisplayForm,然后在Click中加入load DisplayForm,但都没效果为什么会这样??
      

  10.   

    问题解决,果然是form的运行先后问题-___-