关闭另一个表单后刷新ListBox

时间:2013-12-18 12:15:10

标签: .net vb.net forms listbox

我有一个表单中的ListBox,其中包含电子邮件地址。我可以通过从ListBox中选择并按“编辑”按钮来编辑电子邮件地址。新表单显示文本框,我可以编辑和保存电子邮件地址。它工作并编辑数据库中的字段。 (注意:第一种形式不会消失也不应该消失)

问题是:当我保存新地址时,“编辑”表单关闭,之前的表单(保持打开和可见)显示带有旧电子邮件的ListBox。我需要在编辑其中一个项目后刷新该ListBox。

以下是一些代码:

Private Sub btn_Edit_Click(sender As Object, e As EventArgs) Handles btn_Edit.Click

    'some irrelevant code for this

    Dim fEditCompanyEmail As New frmEditCompanyEmail(oldEmail, masterCompany, company)
    fEditCompanyEmail.Show()

End Sub

上面是“编辑”按钮(以ListBox为的形式)

Private Sub btn_Save_Click(sender As Object, e As EventArgs) Handles btn_Save.Click

    Dim newEmail As String = txt_newEmail.Text

        Try

           _controller.UpdateCompanyEmail(company, newEmail, _oldEmailParameter)
           MsgBox("Email address edited successfully!", MsgBoxStyle.Information, "Success")
           Me.Close()

        Catch ex As Exception
           MsgBox(ex.Message, MsgBoxStyle.Critical, "#378-6 Critical Error!")
           Me.Close()
        End Try

End Sub

上面是“保存”按钮点击事件处理程序(在“编辑电子邮件”表单中)

我需要在第一个表单上刷新ListBox,因为我确认在第二个表单中编辑了电子邮件地址。 有谁知道我怎么能实现这个目标?

由于

2 个答案:

答案 0 :(得分:1)

尝试在关闭RefreshItems

后调用fEditCompanyEmail方法
YourProjectName.Form1.Listbox.RefreshItems()

答案 1 :(得分:1)

好的,我明白了:

我发送了第一个表单作为第二个表单的参数,并将其传递给局部变量“_companyForm”(更改了第二个表单的构造函数以接收它)

Dim fEditCompanyEmail As New frmEditCompanyEmail(oldEmail, masterCompany, company, Me)

以第一种形式将刷新功能设置为“public”。 声明一个新表单并将其值设置为包含第一个表单的私有变量。

Dim formCompany As frmCompany = _companyForm

最后在将记录更新到数据库后调用该函数。

formCompany.RefreshTabEmailList()

感谢您的麻烦

Chiapa