一个非常奇怪的问题:关于label控件.无法改变label.caption的值.
比如我有两个窗体
form1  上有  command1 ,command2
form2  上有  label1    任何属性都不改,我写这样一些简单的代码,Private Sub Command1_Click()
Form2.Show 1      '显示窗体2
End SubPrivate Sub Command2_Click()
Form2.Label1.Caption = "12"   把窗体2上的label1.caption改成"12"
End Sub按理说我先点击command2,Form2.Label1.Caption应该变成12了,点击command1,的确如此,
关掉form2,可是在点击command1,再次打开form2,这是Form2.Label1.Caption又变回默认值,也就是
label,这是怎么回事?难道据没有办法让Form2.Label1.Caption一直是12了吗?实在是奇怪,请大家告知.

解决方案 »

  1.   

    你关掉了form2啊!!!,unload 也就是说从内存中释放了,
    当再次加载时(打开窗体),当然会是初始的设置了,即Label.caption的值当然是初始的值拉。
      

  2.   

    难道据没有办法让Form2.Label1.Caption一直是12了吗?
      

  3.   

    属性面板中设置,Create事件中改变...
      

  4.   

    Form2.Label1.Caption = "12"   把窗体2上的label1.caption改成"12"这句后加一句:form2.label1.refresh
      

  5.   

    not unload form2
    but hide form2
      

  6.   

    在form2的Form2_Unload事件里加上一句me.hide就可以了吧!不过要在form1的form2_Unload事件加一句unload form2 或是end
      

  7.   

    在模组里定义一个全局变量保存lable的caption属性
      

  8.   

    'Form2
    Private Sub Form_Load()
      Label1.Caption = "12"   把窗体2上的label1.caption改成"12"
    End Sub
      

  9.   

    form2.show 1 时,如果form2未被加载,form2上的所有控件首先经过初始化。
    您先点击command2时form2已经被加载了,form2.show 1 仅起到了form2.visible=True的作用,所以显示“12”。
    根据具体情况有多种方法可实现您的要求,如不行请说明。
      

  10.   

    form2.show 1 时,如果form2未被加载,form2上的所有控件首先经过初始化。
    您先点击command2时,相当于执行了以下3条语句:
      form2.show
      form2.label1="12"   
      form2.hide
    form2已经被加载了,这时再点击command1时 form2.show 1 仅起到了form2.visible=True的作用,所以显示“12”。
    根据具体情况有多种方法可实现您的要求,如不行请说明。
      

  11.   

    原因很简单,两次操作的不是同一个form2的实例。要想一样,可以设置一个全局变量public strLableCaption as string在form2中添加
    sub form2_load()
         form2.label1.caption=strLableCaptionend subform1的
    sub Commad1_click ()
       strLableCaption="ff"
       form2.show
    end sub