如何创建表单的不同实例

问题描述:

下面的代码写在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() 
+0

你是一个天才。感谢队友:D – 2011-05-01 12:21:16