UltraWinGrid 自动刷新
UltraWinGrid Auto Refresh
在我的 vb.net 项目中,我有 3 个表单。 home_mdi
、Viewfrm
和 AddDatafrm
。
Viewfrm
上有一个 UltraWinGrid,它正在显示一些数据。当我单击 add data
按钮时,AddDatafrm
打开。保存数据后,表单将关闭。
此时,我希望 Viewfrm
上的 UltraWinGrid 到 update/refresh 并显示我添加的数据。目前,它不会显示它,直到我关闭 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
在 WinForm 应用程序中,如果按下按钮并且其 DialogResult
属性 设置为 None 以外的任何值,引擎会自动关闭模态对话框。然后 Winform 引擎将表单 DialogResult 设置为与按钮相同的 属性,退出 ShowDialog 调用和 returns 单击按钮的 DialogResult 属性。
通常这足以处理上述情况。 (或者,在用户在 Yes/No 或 OK/Cancel 场景之间进行选择的一般情况下)
在您的代码中(如聊天中所述),您将“保存”按钮的 DialogResult 属性 设置为 DialogResult.None
。这意味着 Winforms 引擎不会自动关闭您的表单,您需要编写自己的关闭例程。
但是,如果您忘记将表单 属性 DialogResult 设置为 DialogResult.OK,您的调用代码将永远无法刷新网格,因为 DialogResult.OK 的测试失败。
因此,无论关闭 fromAddData 实例的关闭代码是什么,请记住将表单 DialogResult 属性 设置为
Me.DialogResult = DialogResult.OK
或者,如果出现问题,
Me.DialogResult = DialogResult.Cancel
在我的 vb.net 项目中,我有 3 个表单。 home_mdi
、Viewfrm
和 AddDatafrm
。
Viewfrm
上有一个 UltraWinGrid,它正在显示一些数据。当我单击 add data
按钮时,AddDatafrm
打开。保存数据后,表单将关闭。
此时,我希望 Viewfrm
上的 UltraWinGrid 到 update/refresh 并显示我添加的数据。目前,它不会显示它,直到我关闭 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
在 WinForm 应用程序中,如果按下按钮并且其 DialogResult
属性 设置为 None 以外的任何值,引擎会自动关闭模态对话框。然后 Winform 引擎将表单 DialogResult 设置为与按钮相同的 属性,退出 ShowDialog 调用和 returns 单击按钮的 DialogResult 属性。
通常这足以处理上述情况。 (或者,在用户在 Yes/No 或 OK/Cancel 场景之间进行选择的一般情况下)
在您的代码中(如聊天中所述),您将“保存”按钮的 DialogResult 属性 设置为 DialogResult.None
。这意味着 Winforms 引擎不会自动关闭您的表单,您需要编写自己的关闭例程。
但是,如果您忘记将表单 属性 DialogResult 设置为 DialogResult.OK,您的调用代码将永远无法刷新网格,因为 DialogResult.OK 的测试失败。
因此,无论关闭 fromAddData 实例的关闭代码是什么,请记住将表单 DialogResult 属性 设置为
Me.DialogResult = DialogResult.OK
或者,如果出现问题,
Me.DialogResult = DialogResult.Cancel