在我的vb.net项目中,我有3种表单。home_mdi,Viewfrm和AddDatafrm。
Viewfrm上有一个UltraWinGrid,它显示一些数据。当我单击add data按钮时,AddDatafrm会打开。保存数据后,表单将关闭。此时,我希望UltraWinGrid on Viewfrm更新/刷新并显示我添加的数据。目前,它不显示它,直到我关闭Viewfrm,然后再打开它。
图像显示了这个。(数据在开始时不存在,然后会被添加,并且不会出现。最后一个图像是显示新数据的表单,在我重新打开它之后。

我该怎么改变这个?
当前代码:
若要打开添加窗体,请执行以下操作
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Using fp = New frmAddData(Globals.m_database)
If fp.ShowDialog() = DialogResult.OK Then
ugData.DataSource = Nothing
getPeople()
End If
End Using
End Sub保存输入的信息(在添加表单上)
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim m_cn As New OleDbConnection
m_cn = Globals.m_database.getConnection()
If txtFirstName.Text = "" Then
MsgBox("First name cannot be blank")
ElseIf txtLastName.Text = "" Then
MsgBox("Last name cannot be blank")
ElseIf txtAge.Text = "" Then
MsgBox("Age cannot be blank")
ElseIf txtPostCode.Text = "" Then
MsgBox("Postcode cannot be blank")
Else
Dim personID As Integer = database.SaveNewPerson(txtFirstName.Text, txtLastName.Text, txtAge.Text, txtPostCode.Text, m_cn)
MsgBox("Save successful")
txtFirstName.Text = ""
txtLastName.Text = ""
txtAge.Text = ""
txtPostCode.Text = ""
Globals.savedValue = True
Me.Close()
End If
End Sub调用以加载视图窗体上的数据库:
Public Sub getPeople()
Try
Dim sql As String = "SELECT * FROM tblPerson ORDER BY [personID] ASC;"
Dim cm As New OleDbCommand(sql, Globals.m_database.getConnection())
Dim da As New OleDbDataAdapter(cm)
Dim dt As New DataTable()
da.Fill(dt)
ugData.DataSource = dt
Catch Ex As Exception
mdi1.errorLog(Ex.Message, Ex.StackTrace)
MsgBox("Failed to retrieve data, refer to error log")
End Try
End Sub发布于 2016-07-15 13:44:07
在WinForm应用程序中,如果按下按钮并将其DialogResult属性设置为“无”,则引擎会自动关闭模态对话框。然后,Winform将表单DialogResult设置为按钮的相同属性,退出ShowDialog调用并返回单击按钮的DialogResult属性。
通常,这足以处理像你上面这样的情况。(或者,在一般情况下,用户在“是”/“否”或“确定/取消”方案之间进行选择)
在代码中(如chat中所解释的),将保存按钮的DialogResult属性设置为DialogResult.None。这意味着Winforms引擎不会自动关闭表单,您需要编写自己的关闭例程。
但是,如果忘记将Form属性DialogResult设置为DialogResult.OK,则调用代码将永远无法刷新网格,因为DialogResult.OK测试失败。
因此,无论关闭fromAddData实例的关闭代码是什么,请记住使用
Me.DialogResult = DialogResult.OK 或者,如果出了什么问题,
Me.DialogResult = DialogResult.Cancelhttps://stackoverflow.com/questions/38396728
复制相似问题