标签不会从单独的表单更新

时间:2015-02-04 09:10:56

标签: vb.net winforms

我的程序中有2个表单。 Form1上有一个选项卡控件,其中一个选项卡上有一大堆标签。 Form2上有几个文本框和下拉列表。 Form1上有一个按钮,它将Form2作为普通表单打开,而不是对话框。

Form1中的代码在加载时从MySQL数据库填充其上的标签。此代码位于表单加载时调用的单独的公共子中。

我要做的是填写Form2上的一些框,当此表单关闭时,它会使用这些值更新数据库(正常工作),然后这些值显示在Form1上。我可以让Form2运行填充标签的Form1中的代码,但问题是Form1上的标签实际上从未改变过。我尝试过多种方法,包括在标签上调用refresh,尝试从Form2而不是Form1更改标签,但它们永远不会更新。标签的.text值正在更新为新值,我已经通过调试检查了这一点并在正确的点停止以查看值是什么。

任何想法?我认为这可能与Form2调用代码的事实有关,因为它无法更改Form1上的标签。

代码:

Form1(AECSurveyForm)

Private Sub AECSurvey_Load(sender As Object, e As EventArgs) Handles     MyBase.Load

    LoadMeterData()

End Sub


Public Sub LoadMeterData()

    Dim AECMeteringDataAdapter As New AECMeteringDataTableAdapter
    Dim AECMeteringData As AECMeteringDataDataTable
    AECMeteringData = AECMeteringDataAdapter.GetAECMeterDataBySurveyUniqueIdentifier(AECGlobalValues.CurrentSurveyUniqueIdentifier)

    'utility

    Meter1UtilityLabel.Text = AECMeteringData(0)("Utility1")

End Sub

Private Sub MeterButton1_Click(sender As Object, e As EventArgs) Handles Meter1Button.Click

    If Not Application.OpenForms().OfType(Of AECMeteringDataForm).Any Then

        AECMeteringDataForm.GetData(AECGlobalValues.CurrentSurveyUniqueIdentifier, 1)

        AECMeteringDataForm.Show()

    End If

End Sub

Form2(AECMeteringDataForm)

Private Sub AECMeteringDataForm_FormClosing(sender As Object, e As EventArgs) Handles MyBase.Closing

    Dim AECMeteringDataAdapter As New AECMeteringDataTableAdapter
    Dim AECMeteringData As AECMeteringDataDataTable
    AECMeteringData = AECMeteringDataAdapter.GetAECMeterDataBySurveyUniqueIdentifier(AECGlobalValues.CurrentSurveyUniqueIdentifier)

    AECMeteringData(0)("Utility1") = UtilityComboBox.SelectedItem.ToString

    AECMeteringDataAdapter.Update(AECMeteringData)

    AECSurveyForm.LoadMeterData()

End Sub

0 个答案:

没有答案