首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UltraWinGrid自动刷新

UltraWinGrid自动刷新
EN

Stack Overflow用户
提问于 2016-07-15 12:56:47
回答 1查看 211关注 0票数 2

在我的vb.net项目中,我有3种表单。home_mdiViewfrmAddDatafrm

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

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

我该怎么改变这个?

当前代码:

若要打开添加窗体,请执行以下操作

代码语言:javascript
复制
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

保存输入的信息(在添加表单上)

代码语言:javascript
复制
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

调用以加载视图窗体上的数据库:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 13:44:07

在WinForm应用程序中,如果按下按钮并将其DialogResult属性设置为“无”,则引擎会自动关闭模态对话框。然后,Winform将表单DialogResult设置为按钮的相同属性,退出ShowDialog调用并返回单击按钮的DialogResult属性。

通常,这足以处理像你上面这样的情况。(或者,在一般情况下,用户在“是”/“否”或“确定/取消”方案之间进行选择)

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

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

因此,无论关闭fromAddData实例的关闭代码是什么,请记住使用

代码语言:javascript
复制
 Me.DialogResult = DialogResult.OK 

或者,如果出了什么问题,

代码语言:javascript
复制
 Me.DialogResult = DialogResult.Cancel
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38396728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档