VB中如何在一个FORM(或类中)中改变另一个FORM中的内容?比如改变一个Progress bar的内容。

解决方案 »

  1.   

    例如
    form1,form2
    在form1中
    form2.caption="hello world!"
      

  2.   

    两种办法,
    1。你可以在form2中的设置progress bar的过程作为public这样form1中就可以调用了。
    2。如楼上写的就直接写from2.progressbar.value=**就可以了。
    3。在模块中传人对象,直接设置。
      

  3.   

    form1中
    form2.text1.text = "aaaa"
      

  4.   

    form1中
    form2.progress1.value=10
      

  5.   

    progressbar在form2上
    form1中的代码Private Sub Command1_Click()
    Form2.Show
    Form2.ProgressBar1.Max = 10000
    For i = 1 To 10000
    Form2.ProgressBar1.Value = i
    Next
    End Sub
      

  6.   


    1。你可以在form2中的progress bar在form1中编辑了。
         如:from2.progressbar.value=**
    2。在模块中传人对象,直接设置。
      

  7.   

    在Form1中调用Form2的方法如下:
    在Form1中:写
    Dim m_frmForm2 as Form2(应该是Form2的名字)
    这样m_frmForm2 就代表了Form2的访问句柄
    然后写m_frmForm.
    "."后面就会出现Form2中的各个控件的名称,这时候随便你来调用。
    前面几位说的方法也可以。
      

  8.   

    以上都不很正确。VB真正的应用性的编写建议用到SUB main()过程。
    做法如下:
    调整你的工程的起动对象为:Sub main()
    在你的工程中任意一模块中(建议新建)写:
    Sub main()End Sub(注:记住,所有模块会在你的程序起动前加载)
    这样,你的程序就可以运行了,当然,它不干任何事。
    添加窗体,至你的工程中有两个窗体(按默认)。然后写入代码,此时模块中Sub main()及你的要求的相关代码如下:Public Me1 As New Form1
    Public Me2 As New Form1
    Sub main()End Sub此时,你运行你的程序时,你的程序就做了以下几件事:
    一、起动,构造了Form1、Form2类。
    二、自动定义Form1、Form2局部性类实体,实体名Form1、Form2,并实体化。
    三、按你加入代码,定义了Me1为Form1的全局实体定义,定义了Me2为Form2的全局实体定义。然后,我们再充实如下:
    Public Me1 As New Form1
    Public Me2 As New Form1
    Sub main()
    Me1.show
    Me2.show
    End Sub此时,实体化并显示出两个窗体Me1、Me2。
    在这两个窗体中,看上去和Form1、Form2是一模一样的(不一样才怪了),但是对它们的引用、操作,请使用"Me1.……","Me1.……"。然后,在VB环境中,在Form1窗体上新建一个按钮,在按钮的代码中写入以下代码:
    Private Sub Command1_Click()
    Me2.Caption = "你好世界"
    End Sub此时,你再运行,就能看到在窗体1中,能完全正常地控制窗体2了。
    那么,省下的事,就不再用我多说了吧。又及,当然,由于VB自动产生的Form1、Form2的存在,在这儿VB是浪费了不少不应浪费的电脑性能资源的,不过,VB这东西本来就是这样,你不能过份地要求他什么。
    在以后的用VB的编程里,我建议你都用SUB main()作为你的起动对象,我想,这样才是真正的正道。