UltraWinGrid自动刷新

时间:2016-07-15 12:56:48

标签: vb.net refresh ultragrid ultrawingrid form-load

在我的vb.net项目中,我有3个表单。 void Start() { PlayerInfo[] allPlayersArray = new PlayerInfo[1]; allPlayersArray[0] = new PlayerInfo(); allPlayersArray[0].playerName = "name 0"; string allPlayersArrayJson = JsonHelper.ToJson(allPlayersArray); print(allPlayersArrayJson); PlayerPrefs.SetString("allPlayersArrayJson", allPlayersArrayJson); string newJson = PlayerPrefs.GetString("allPlayersArrayJson"); print(newJson); PlayerInfo[] newArray = new PlayerInfo[1]; newArray = JsonHelper.FromJson<PlayerInfo>(newJson); print(newArray[0].playerName); } home_mdiViewfrm

AddDatafrm上有一个UltraWinGrid,显示一些数据。点击Viewfrm按钮后,add data即会打开。保存数据后,表单将关闭。 此时,我希望AddDatafrm上的UltraWinGrid更新/刷新并显示我添加的数据。目前,在我关闭Viewfrm然后再次打开它之前,它不会显示。

图像显示了这一点。 (数据在开始时不存在,然后被添加并且不会出现。最终图像是显示新数据的表单,在我重新打开它之后。

enter image description here

如何更改此内容?

当前代码:

打开添加表单

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

调用在View表单上加载数据库:

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

1 个答案:

答案 0 :(得分:1)

在WinForm应用程序中,如果按下按钮并且其DialogResult属性设置为除None之外的任何内容,则引擎会自动关闭模式对话框。然后Winform引擎将表单DialogResult设置为该按钮的相同属性,退出ShowDialog调用并返回单击按钮的DialogResult属性。
通常,这足以处理上述情况。 (或者,在用户选择是/否或确定/取消方案的一般情况下)

在您的代码中(如聊天中所述),您将“保存”按钮的DialogResult属性设置为DialogResult.None。这意味着Winforms引擎不会自动关闭您的表单,您需要编写自己的结束例程。

但是,如果您忘记将Form属性DialogResult设置为DialogResult.OK,则您的调用代码将永远无法刷新网格,因为DialogResult.OK的测试失败。

因此,无论您必须关闭fromAddData实例的结束代码,请记住使用

设置表单DialogResult属性
 Me.DialogResult = DialogResult.OK 

或者,如果出现问题,请

 Me.DialogResult = DialogResult.Cancel