从vb.net中的另一个表单刷新表单的特定实例

时间:2016-07-12 12:47:08

标签: vb.net winforms visual-studio listbox

好吧,我的google-fu可能很弱,但我遇到的问题似乎很容易过去,但我尝试的一切都无法正常工作。我有一个稍微特殊的案例,它使许多例子与我的应用程序无关。

这是我正在尝试做的事情:我在form1上有一个从数据库填充的列表框。我在form1上有一个打开form2的按钮,因此用户可以输入日期和时间。该日期和时间以及一些其他信息将写入数据库,并且form2将关闭。

我想要的是在form2上使用write或close事件来刷新form1中列表框中的信息。

一个主要考虑因素是用户可能在任何时候最多打开20多个form1实例。所以我希望它只刷新产生它的form1。

我在form1上有很多按钮,可以使用以下代码正确刷新列表框:

Private Sub refreshTimeLine()

    TimeLineListBox.Items.Clear()

    Try
        myConnection.ConnectionString = connString
        myConnection.Open()
        Dim str As String
        str = "SELECT TLEventTime,TLEventNotes FROM Timeline WHERE EventID = '" & eventId & "'"
        Dim cmd5 As OleDbCommand = New OleDbCommand(str, myConnection)
        dr = cmd5.ExecuteReader()
        While dr.Read()
            Dim eventTime = dr("TLEventTime").ToString
            Dim eventNotes = dr("TLEventNotes")
            Dim tl = "[" & eventTime & "] - " & eventNotes & ""
            TimeLineListBox.Items.Add(tl)
        End While
        myConnection.Close()
    Catch exError As SystemException
        MsgBox("An Error Occurred. " & exError.Message)
        myConnection.Close()
    End Try

End Sub

简而言之,我希望这个proc在form2关闭时运行,因此用户将看到列表框中的更改。但是只有在正确的form1上(并不是因为刷新所有form1会受到伤害,但是由于我可以拥有的用户数量,以及他们可以打开的form1的数量,数据库命中将是一个问题)。为了让这个工作我已经尝试使proc公开,并从form2调用它。即使VS 2010认为这一切都很好,并且似乎正确地连接回来,它根本不会触发proc。

你说什么,Great and Mighty stackoverflow?

0 个答案:

没有答案