好吧,我的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?