我有一个表单中的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,因为我确认在第二个表单中编辑了电子邮件地址。 有谁知道我怎么能实现这个目标?
由于
答案 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