如何创建表单的不同实例
问题描述:
下面的代码写在Timer Tick事件中。只要时间和日期不相同,它就可以正常工作。当时间和日期相同时,它只显示1条消息。如何显示同一日期和时间的多个讯息?我认为这可以完成如果我为表单创建不同的实例。但我不知道数据库中会有多少个相同的时间和日期。所以我不能那样做。有什么解决办法吗?如何创建表单的不同实例
Dim frm As New frmMessage
Dim nowDate As String = String.Format("{0:M/d/yyyy}", DateTime.Now)
Dim nowTime As String = String.Format("{0:h:mm tt}", DateTime.Now)
Dim mySelectQuery As String = "SELECT ReminderID, Date, Time, Subject, Reminder FROM Reminder WHERE Date LIKE '" & nowDate & "' AND Time LIKE '" & nowTime & "'"
Dim myConnString As String = "Data Source=" & Application.StartupPath & "\Database\SimpleDB.db3"
Dim sqConnection As New SQLiteConnection(myConnString)
Dim sqCommand As New SQLiteCommand(mySelectQuery, sqConnection)
sqConnection.Open()
Dim sqReader As SQLiteDataReader = sqCommand.ExecuteReader()
Try
If sqReader.HasRows = True Then
While sqReader.Read()
frm.Show()
If (Not sqReader.IsDBNull(0)) Then
frm.txtID.Text = sqReader.GetInt32(0)
End If
If (Not sqReader.IsDBNull(1)) Then
frm.txtDate.Text = sqReader.GetString(1)
End If
If (Not sqReader.IsDBNull(2)) Then
frm.txtTime.Text = sqReader.GetString(2)
End If
If (Not sqReader.IsDBNull(3)) Then
frm.txtSubject.Text = sqReader.GetString(3)
End If
If (Not sqReader.IsDBNull(4)) Then
frm.txtReminderText.Text = sqReader.GetString(4)
End If
End While
End If
sqReader.Close()
sqConnection.Close()
Catch ex As Exception
MsgBox("Error:" & ex.Message, vbExclamation)
End Try
答
如果我理解正确的话,你想显示一个窗体,为每一行从数据库中回滚。 我不确定这种用户界面的做法是最好的,如果你有多个行, ,但你可以instanciate一个新的形式,如你所说的每一行, 而不是使用相同的实例 所有你需要的做的是替换:
frm.Show()
与
Dim newForm As New frmMessage()
newForm.Show()
你是一个天才。感谢队友:D – 2011-05-01 12:21:16